group-by

0ejtzxu1  于 2021-06-27  发布在  Hive
关注(0)|答案(3)|浏览(454)

我有一个包含38列的配置单元查询,只有一列使用聚合函数。但是我只需要用列名1,2而不是all对它进行分组。如何做到这一点?
例如,我需要的是,

SELECT 
1
,2
,3
,4
,5
,MAX(6)

FROM 
table_x

GROUP BY 
1,2
qhhrdooz

qhhrdooz1#

它不符合 group by 定义。当你分组时 X columns ,其他 Y columns 必须聚合以适应现有组。

l7mqbcuq

l7mqbcuq2#

选择所需的所有列,并仅使用列名1、2将其分组,使用分析函数。
使用以下查询:

select col1,col2.....col38,
max(col6) over(partition by col1,col2 order by col1) as max_val
from tablename
oxiaedzo

oxiaedzo3#

使用 row_number() 功能

select * from
(
   SELECT 1,2,3,4,5,6,row_number() over(partition by 1,2 order by 6 desc) as rn
   FROM table_x
)A where rn=1

相关问题