Grouping 函数:
可以接受一列,返回0或1。如果列值为空,则返回1,非空则返回0。它只能在rollup和或cube函数中使用,因为在统计中显示“全部”的那一项统计值时,那一项的标签通常是空的,这时grouping就非常有用,还可以在grouping的基础上进行decode, case等进行美化。
SQL>select grouping(a.mgr) mgr, grouping(a.comm) comm,min(a.empno) empno, min(a.deptno) deptno, count(*)
from NEW_TEST a group by rollup(mgr, comm ) order by 1, 2
Grouping_id 函数:
比grouping还强点,可以接收多个列,这几个列都不为空时,返回0,只要有一个为空,则返回1,如果都为空,则返回3。
SQL>select grouping_id(a.mgr,a.comm) mgr, min(a.empno) empno, min(a.deptno) deptno, count(*)
from NEW_TEST a group by rollup(mgr, comm ) order by 1, 2