oracle group by rollup用法详解

来源:互联网 发布:js true false 转换 编辑:程序博客网 时间:2024/04/26 19:54

假如有一个薪资表(deptSal)如下:

deptNo name sal A zhao 100 A li 200 A zhao 100 A du 1000 B zhao 100 B du 500

有如下的查询语句:

select deptNo,name,sum(sal) sumSal from deptSal group by rollup(deptNo,name);

结果会是怎么样呢?
其实上面这句sql的结果集,就是一下三个查询的结果集的并集。

  1. select deptNo,name,sum(sal) sumSal from deptSal group by ();
deptNo name sal - - 2000

2. select deptNo,name,sum(sal) sumSal from deptSal group by deptNo;

deptNo name sal A - 1400 B - 600

3. select deptNo,name,sum(sal) sumSal from deptSal group by name;

deptNo name sal - zhao 300 - li 200 - du 1500

4. select deptNo,name,sum(sal) sumSal from deptSal group by deptNo,name;

deptNo name sal A zhao 200 A li 200 A du 1000 B zhao 100 B du 500

所以最后的查询结果就是:

deptNo name sal - - 2000 A - 1400 B - 600 - zhao 300 - li 200 - du 1500 A zhao 200 A li 200 A du 1000 B zhao 100 B du 500
0 0
原创粉丝点击