我在一个配置单元表中有4列
Level1 String Level2 String Level3 String Cnt INT
我想在同一个表中分别聚合多个级别的cnt。
@Level1 @Level1, Level2 @Level3 @level1,level2,level3
所以最后一张table应该有 sum(cnt) 对于单独列中的所有级别组合。我最初考虑分开做,然后连接表,但我不确定如何进行这样的连接,或者是否可能。
sum(cnt)
wlwcrazw1#
虽然还不清楚您的最终预期输出应该是什么样的,但是您可以利用 GROUPING SETS ```select level1,level2,level3,count(*)FROM yourtableGROUP BY level1,level2,level3 GROUPING SETS ( (Level1), ( Level1, Level2), (Level3), (level1,level2,level3) );
GROUPING SETS
您还可以使用以下函数 `GROUPING_ID,Grouping` 以及此查询的输出,以适应最终的聚合。 参考:增强聚合
1条答案
按热度按时间wlwcrazw1#
虽然还不清楚您的最终预期输出应该是什么样的,但是您可以利用
GROUPING SETS
```select level1,level2,level3,count(*)
FROM yourtable
GROUP BY level1,level2,level3
GROUPING SETS ( (Level1), ( Level1, Level2), (Level3), (level1,level2,level3) );