GROUP BY 在配置单元中的特定列

GROUP BY on specific columns in hive

我有一个包含 38 列的配置单元查询,只有一列使用聚合函数。但我只需要用列名 1、2 而不是全部对它进行分组。如何实现?

例如, 我需要的是,

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

FROM 
table_x

GROUP BY 
1,2 

select所有你想要的列,只用列名1、2分组,使用分析函数。

使用以下查询:

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

使用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

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