同一个 table 中的多个 groupby
Multiple groupby in the same table
我在 HIVE 中有 4 列 tables
Level1 String
Level2 String
Level3 String
Cnt INT
我想在同一个 table 中分别聚合多个级别的 cnt,即
@Level1
@Level1, Level2
@Level3
@level1,level2,level3
所以最后的 table 应该有 sum(cnt)
用于单独列中的所有级别组合。
我最初考虑单独进行,然后加入 table,但我不确定如何进行这样的加入,或者是否可能。
虽然不清楚您最终的预期输出应该是什么样子,但您可以利用 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
等函数以及此查询的输出来满足您的最终聚合。
我在 HIVE 中有 4 列 tables
Level1 String
Level2 String
Level3 String
Cnt INT
我想在同一个 table 中分别聚合多个级别的 cnt,即
@Level1
@Level1, Level2
@Level3
@level1,level2,level3
所以最后的 table 应该有 sum(cnt)
用于单独列中的所有级别组合。
我最初考虑单独进行,然后加入 table,但我不确定如何进行这样的加入,或者是否可能。
虽然不清楚您最终的预期输出应该是什么样子,但您可以利用 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
等函数以及此查询的输出来满足您的最终聚合。