同一表中的多个groupby

0tdrvxhp  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(273)

我在一个配置单元表中有4列

Level1 String
Level2 String
Level3 String
Cnt INT

我想在同一个表中分别聚合多个级别的cnt。

@Level1
@Level1, Level2
@Level3
@level1,level2,level3

所以最后一张table应该有 sum(cnt) 对于单独列中的所有级别组合。
我最初考虑分开做,然后连接表,但我不确定如何进行这样的连接,或者是否可能。

wlwcrazw

wlwcrazw1#

虽然还不清楚您的最终预期输出应该是什么样的,但是您可以利用 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` 以及此查询的输出,以适应最终的聚合。
参考:增强聚合

相关问题