假如有一个薪资表(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的结果集,就是一下三个查询的结果集的并集。
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 |