带rollup 和 不带rollup的分组 区别在哪?
首先我们先看 普通的(不带的)
例一
select deptno , job ,sum(sal) from emp group by deptno ,job order by 1 asc;
例二
select deptno ,job , sum(sal) from emp group by rollup(deptno,job);
差别在于多了4个job为空 和一个deptno 为空
那如果我们这样写的时候
select deptno ,job , sum(sal) from emp group by rollup(job,deptno);
这样子我们就可以看出 rollup的规则是如何的了
拿例二的图一来说
where deptno = 10 group by a,b + where deptno = 10group by a +
where deptno =20 group by a,b + where deptno = 20 group by a +
....+
group by null
这样我们就一下就看懂了