grouping and grouping_id

rollup中使用grouping_id()
select grouping_id(deptno,ename) gid,deptno,ename,sum(sal)
from emp
group by rollup(deptno,ename);


case和grouping()转换单列的值
------------------------------------------------
select case grouping (dname)
   when 1 then 'all dept'
   else dname
  end
   as dname,
     sum(sal) sal
    from emp,dept
where emp.deptno=dept.deptno
group by rollup (dname)
order by dname;
------------------------------------------------
ACCOUNTING 8750
OPERATIONS 6000
RESEARCH 9675
SALES  9400
all dept 33825
------------------------------------------------

case和grouping()转换多个列的值
------------------------------------------------
select case grouping (dname)
   when 1 then 'all dept'
   else dname
  end
   as dname,
  case grouping (ename)
            when 1 then 'all name'
            else ename
         end
            as ename,
     sum(sal) sal
    from emp,dept
where emp.deptno=dept.deptno
group by rollup (dname,ename)
order by dname,ename
------------------------------------------------
ACCOUNTING CLARK  2450
ACCOUNTING KING  5000
ACCOUNTING MILLER  1300
ACCOUNTING all name 8750
OPERATIONS all name 6000
OPERATIONS hjp  6000
RESEARCH ADAMS  1100
RESEARCH FORD  3000
RESEARCH JONES  2975
RESEARCH SCOTT  1800
RESEARCH SMITH  800
RESEARCH all name 9675
SALES  ALLEN  1600
SALES  BLAKE  2850
SALES  JAMES  950
SALES  MARTIN  1250
SALES  TURNER  1500
SALES  WARD  1250
SALES  all name 9400
all dept all name 33825
------------------------------------------------

grouping sets子句
------------------------------------------------
select deptno,empno,sum(sal)
from emp
group by grouping sets(deptno,empno)
order by deptno,empno
------------------------------------------------
10  8750
20  9675
30  9400
40  6000
 7369 800
 7499 1600
 7521 1250
 7566 2975
 7654 1250
 7698 2850
 7782 2450
 7788 1800
 7839 5000
 7844 1500
 7876 1100
 7900 950
 7902 3000
 7934 1300
 8000 6000
------------------------------------------------

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17012874/viewspace-694449/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17012874/viewspace-694449/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值