高级分组groupby、groupbycube、groupbyrollup使用说明

1、分别以job和deptno分组求和
select sum(sal),job,deptno from emp group by grouping sets(job,deptno);

专注于为中小企业提供成都网站制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业榆社免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

2、2^n-1分组(n表示列的数量,如果有括号里面的括起来的多个列算一个列 举例:cube((a,b),c)n=2;cube(a,b) n=2;
select sum(sal) ,deptno,job from emp group by cube(deptno,job);
cube__>2^n
     --group by 0;
     --group by job
     --group by deptno
     --group by deptno,job

3、n+1次分组
select sum(sal) ,deptno,job from emp group by rollup(deptno,job);
rullup -->n+1
       --group by deptno,job;
       --group by deptno;
       --group by 0;

4、检测是否参加分组 grouping()
   select sum(sal) ,deptno,job,grouping(deptno),grouping(job) from emp group by cube(deptno,job);
查询的结果集 1 表示没有参与分组;0表示参与分


文章题目:高级分组groupby、groupbycube、groupbyrollup使用说明
分享链接:http://myzitong.com/article/ighccs.html