2013年(2)
分类: Oracle
2013-11-01 15:13:26
Group by rollup和group by cube的区别
Oracle数据库中的ROLLUP配合group by命令使用,从右向左递减分组,提供信息小计和总计;CUBE也是GROUP BY子句的一种扩展,返回每一个列组合(列出来了的)的小计记录,同时在末尾加上总计记录。
SQL> select job,deptno,sal total_sal from emp;
SQL> select job,deptno,sum(sal) total_sal from emp group by rollup(job,deptno);
图中圈中部分是每个job分组后每组的sal小计,最后一行划线部分是总计
SQL> select job,deptno,sum(sal) total_sal from emp group by cube(job,deptno);
图中圈中部分是其下sal的小计,框中部分是以deptno分类的小计,第一行是sal的总计