SQL系列ROLLUP关键字
为什么要引入ROLLUP?
可方便的生成"合计"、"小计"、"总计" 等混合统计的报表
如下数据集A经过ROLLUP运算可生成数据集B
接下来用上图中的A表做各种测试:
1.ROLLUP简单应用
查询结果如下:
如果用ROLLUP的另一个关键字CUBE产生的结果如下:
结果:
引出一个概念:
维:查询所指定的列称为维,列的个数称为维度
以上两个SQL语句涉及三个维度,ROLLUP和CUBE都可以用于多维计算,不同点在于CUBE可以包含所有纬度的组合,而
ROLLUP只涉及指定列的维度计算。
2.ROLLUP运算关键字GROUPING
GROUPING:判断是否为多维计算中的附加列,如果是则输出1,否则输出0
结果:
引入ROLLUP可以方便的对查询结果排序或自定义附加列的格式
排序应用:
结果:
![](https://images.cnblogs.com/cnblogs_com/chenxumi/4.gif)
补充:关于汉字、字母、null、空值、数字的排序问题
结果:
![](https://images.cnblogs.com/cnblogs_com/chenxumi/z111111111111111.gif)
至于自定义附加列的样式在第三步讲解
3.ROLLUP综合运用
结果:
![](https://images.cnblogs.com/cnblogs_com/chenxumi/5.gif)