rollup(),cube(),grouping sets()
  上面这几个函数,是对group by分组功能做的功能扩展。
a.rollup()
  功能:在原结果基础上追加一行总合计记录
  rollup(字段1,字段2)会追加按字段1进行的合计记录,
  最后再追加一个总合计记录
 
  select deptno,count(*)
  from emp
  group by rollup(deptno);
 
  select deptno,job,count(*)
  from emp
  group by rollup(deptno,job)
  order by deptno;
  ----等价于下面写法-----
  select deptno,job,count(*)
  from emp
  group by deptno,job
  union
  select deptno,null,count(*)
  from emp
  group by deptno
  union
  select null,null,count(*)
  from emp
  order by deptno;
 
  结论:group by rollup(字段1,字段2,字段3)
    --查询按字段1,字段2,字段3分组统计结果
    --追加按字段1和字段2的合计
    --追加按字段1的合计
    --追加总合计记录
b.cube()
 
  select deptno,count(*)
  from emp
  group by cube(deptno)
  order by deptno;
 
  cube(字段1):作用于rollup(字段1)相同。
   追加一行总合计记录。
 
  select deptno,job,count(*)
  from emp
  group by cube(deptno,job)
  order by deptno;
  --查询group by deptno,job分组统计结果
  --查询group by deptno分组统计结果
  --查询group by job分组统计结果
  --查询没有group by统计结果
 
 结论:group by cube(字段1,字段2,字段3)
  --查询group by 字段1,字段2,字段3统计结果
  --查询group by 字段1,字段2统计结果
  --查询group by 字段1统计结果
  --查询group by 字段2统计结果
  --查询group by 字段3统计结果
  --查询group by 字段2,字段3统计结果
  --查询group by 字段1,字段3统计结果
  --查询没有group by统计结果
 
c.grouping sets()
 
  select deptno,count(*)
  from emp
  group by grouping sets(deptno)
  order by deptno;
  --上面和没加grouping sets()效果一样
 
  select deptno,job,count(*)
  from emp
  group by grouping sets(deptno,job)
  order by deptno;
 --只返回cube规则追加的分组统计结果
 --不包含没有group by和group by deptno,job的统计
  

最新文章

  1. 关于SQL注入和如何防止
  2. Android Gson的使用总结
  3. 一起学HTML基础-CSS样式表常用样式属性
  4. day5----正则
  5. linux 安装vpn
  6. 《MySQL悲观锁总结和实践》乐观锁
  7. Handle类的用法
  8. ruby安装插件报错
  9. Ant build.xml 批量打渠道包回顾!打第三方jar包总结
  10. bzoj2789
  11. .IIS7如何设置301重定向详解
  12. 解决Unity3d 4.3 动画系统带来的烦恼
  13. vim 设置默认显示行号
  14. 纯CSS3美化单选按钮radio
  15. AngualrJS之服务器端通信
  16. BBS论坛(二十八)
  17. 银盒子智慧餐厅硬件尺寸规格&推荐机型
  18. 【转】python类中super()和__init__()的区别
  19. vue2总结
  20. 聊聊Java内存模型

热门文章

  1. 获取DATA的数据
  2. Ajax发送GET和POST请求案例
  3. C++里面mutable的作用
  4. [HTML5] Text Alternatives
  5. iframe显示滚动栏
  6. 移除apsx视图引擎,及View目录下的web.config的作用
  7. JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0xfe
  8. 26.QT颜色与布局
  9. QT-简介
  10. Struts2简单环境搭建