从列生成 MIN、AVG、MAX 列。 [SQL] 蜂巢
Posted
技术标签:
【中文标题】从列生成 MIN、AVG、MAX 列。 [SQL] 蜂巢【英文标题】:Generating MIN, AVG, MAX columns from a column. [SQL] Hive 【发布时间】:2019-11-30 21:26:52 【问题描述】:我有一个包含油价列的数据库。 我的目标是根据按位置分组的 Oil value 列生成一个表格,其中包含显示 Min Price、AvgPrice 和 Max Price 的列。其中 oil.frequency = 'A'
这是我当前的查询
select location,
min(oil.value) over (partition BY oil.location),
max(oil.value) over (partition BY oil.location),
avg(oil.value) over (partition BY oil.location)
FROM OIL
Where oil.frequency = 'A'
GROUP BY oil.location, oil.value;
下面的图片显示了我的数据表,第二张图片显示了我希望数据的显示方式。
enter image description here
enter image description here
【问题讨论】:
【参考方案1】:您不需要窗口函数。 只需按位置分组并聚合:
select location,
min(value),
max(value),
avg(value)
FROM OIL
Where frequency = 'A'
GROUP BY location;
【讨论】:
以上是关于从列生成 MIN、AVG、MAX 列。 [SQL] 蜂巢的主要内容,如果未能解决你的问题,请参考以下文章
LINQ to SQL Count/Sum/Min/Max/Avg Join