从列生成最小、平均、最大列[sql]配置单元

0md85ypi  于 2021-06-25  发布在  Hive
关注(0)|答案(1)|浏览(230)

我有一个数据库,里面有一列石油价格。我的目标是生成一个表,其中的列根据按位置分组的oil value列显示minprice、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;

下面的图像显示了我的数据表,第二个图像显示了我希望数据的显示方式。
在此处输入图像描述
在此处输入图像描述

xdyibdwo

xdyibdwo1#

你不需要窗口函数。
仅按位置和聚合进行分组:

select location, 
       min(value), 
       max(value), 
       avg(value)
FROM OIL 
Where frequency = 'A'
GROUP BY location;

相关问题