我在HIVE表中有4列
Level1 String
Level2 String
Level3 String
Cnt INT
我想在同一个表中分别在多个级别聚合cnt,即
@Level1
@Level1, Level2
@Level3
@level1,level2,level3
因此,对于不同列中的所有级别组合,最终表应该具有sum(cnt)
。
我最初考虑单独进行,然后加入表格,但我不知道如何进行这样的联接,或者甚至是否可能。
答案 0 :(得分:2)
虽然目前还不清楚您的最终预期输出应该是什么,但您可以使用GROUPING SETS
select level1,level2,level3,count(*)
FROM yourtable
GROUP BY level1,level2,level3
GROUPING SETS ( (Level1), ( Level1, Level2), (Level3), (level1,level2,level3) );
您还可以使用GROUPING_ID,Grouping
等函数以及此查询的输出以适合您的最终聚合。