欢迎来到我的地盘:今天是

若得山花插满头,莫问奴归处!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 
group by ROLLUP(A, B, C),首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,
然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作
GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,
然后依次是(A、B),(A、C),(A),(B、C),(B),(C),最后对全表进行GROUP BY操作。
*******************group rollup*****************
SELECT   deptno, job, sum(sal)
FROM     emp
GROUP BY ROLLUP(deptno,job);
SELECT   deptno, job, sum(sal)
FROM     emp
GROUP BY deptno,job;
*******************group cube***************
SELECT   deptno, job, sum(sal)
FROM     emp
GROUP BY CUBE(deptno,job);
grouping:
SELECT   deptno, job, sum(sal), grouping(job),grouping(deptno)
FROM     emp
GROUP BY ROLLUP(deptno,job);
SELECT   deptno, job, sum(sal), grouping(job),grouping(deptno)
FROM     emp
GROUP BY CUBE(deptno,job);
***************grouping set 分组求统计再联合*******************************
SELECT   deptno, job,
         mgr,avg(sal)
FROM     emp
GROUP BY GROUPING SETS ((deptno,job), (job,mgr));
select * from emp order by job;
 
复合列:
SELECT   deptno, job, mgr,
         SUM(sal)
FROM     emp
GROUP BY ROLLUP( deptno,(job, mgr));
SELECT   deptno, job,
         SUM(sal)
FROM     emp
GROUP BY ROLLUP((deptno,job));
SELECT   deptno, job,
         SUM(sal)
FROM     emp
GROUP BY deptno,job;
SELECT   deptno, job,
         SUM(sal)
FROM     emp
GROUP BY ROLLUP(deptno,job);
***********************
SELECT   deptno, job, mgr,
         SUM(sal),grouping(deptno),grouping(job)
FROM     emp GROUP BY deptno,
         ROLLUP(job),
         CUBE(mgr);
posted on 2008-08-13 12:17  莫问奴归处  阅读(2588)  评论(0编辑  收藏  举报
轩轩娃