数据库入门day06之数据汇总

数据库入门day06之数据汇总

汇总数据

union合并

group by rollup() 

组合方法

rollup(abc):(a,b,c) (a,b) (a) ()

rollup与union区别

rollup写法方便
执行效率和性能更高
汇总行无关列用null填充

group by cube()

相比rollup,cube得到更多的汇总数据

组合方法

cube((a,b),c):((a,b),c) (a,b) (c) ()

grouping sets

灵活组合,包含rollup与cube所有的组合方法

等价

cube(a,b,c)等价于grouping sets((a,b,c),(a,b),(a,c),(b,c),(a),(b),(c),())

rollup(a,b,c)等价于grouping sets((a,b,c),(a,b),(a),())

grouping

查看汇总行并区分null
rollup cube都会产生null,实际数据也可能含有null
实际数据产生的null,grouping函数返回0,否则返回1