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
以适合现有组。
我有一个包含 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
以适合现有组。