从列生成 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

LINQ to SQL语句Count/Sum/Min/Max/Avg操作符

sql函数

SQL函数

SQL 函数:AggregateScalar函数介绍

Sql 复习