文章目录
grouping set() 多维分析
将不同维度的GROUP BY结果进行UNION ALL操作。
UNION: A ∪ B 会自动去重
UNION ALL: A ∪ B 不会去重,显示所有
SELECT a,b,SUM(c) FROM table GROUP BY a,b GROUPING SETS((a,b),a,b,())
SELECT a,b,SUM(c) FROM table GROUP BY GROUPING SETS((a,b),a,b,())
-- 相当于
SELECT a,b,SUM(c) FROM table GROUP BY a,b
UNION ALL
SELECT a,null,SUM(c) FROM table GROUP BY a,null
UNION ALL
SELECT null,b,SUM(c) FROM table GROUP BY null,b
UNION ALL
SELECT null,null,SUM(c) FROM table
说明
- group by后面放的字段表示要分组聚合的全部字段
- grouping sets 后面放的是 group by 后面各种字段的组合