分组聚合
group by x1, x2, x3
grouping sets((x1), (x1, x2), (x1, x3),(x1, x2, x3))
将不同维度的GROUP BY结果进行UNION ALL操作
GROUPING SETS会把在单个GROUP BY逻辑中没有参与GROUP BY的那一列置为NULL值,这样聚合出来的结果,未被GROUP BY的列将显示为NULL。
GROUPING__ID,表示结果属于哪一个分组集合。
举例
select a,b,c,count(*),grouping__idfrom
values (1,2,3) as t(a,b,c)group by a,b,c
groupingsets ((a,b,c), (a))
结果展示
a | b | c | count (*) | grouping__id |
---|---|---|---|---|
1 | 2 | 3 | 1 | 7 |
2 | 1 | NULL | NULL | 1 |
参考文档