分组聚合
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__id
from
values (1,2,3) as t(a,b,c)
group by a,
b,
c
grouping
sets ((a,b,c), (a))
结果展示
a | b | c | count (*) | grouping__id |
---|---|---|---|---|
1 | 2 | 3 | 1 | 7 |
2 | 1 | NULL | NULL | 1 |