ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle PL/SQL之GROUP BY CUBE

Oracle PL/SQL之GROUP BY CUBE

原创 Linux操作系统 作者:sudn 时间:2011-12-21 10:48:31 0 删除 编辑

ROLLUP会根据GROUP BY后面的字段从右到左逐步以去掉右边一个字段,逐步向上累计求和,

CUBE则会对GROUP BY后面的字段所有的组合进行分组求和。

CUBE eg1:

SELECT   department_id, job_id, SUM (salary)  
    FROM employees  
   WHERE department_id < 60  
GROUP BY CUBE (job_id, department_id);  
  
  
DEPARTMENT_ID JOB_ID     SUM(SALARY)  
------------- ---------- -----------  
                              211200  
           10                   4400  
           20                  19000  
           30                  24900  
           40                   6500  
           50                 156400  
              HR_REP            6500  
           40 HR_REP            6500  
              MK_MAN           13000  
           20 MK_MAN           13000  
              MK_REP            6000  
           20 MK_REP            6000  
              PU_MAN           11000  
           30 PU_MAN           11000  
              ST_MAN           36400  
           50 ST_MAN           36400  
              AD_ASST           4400  
           10 AD_ASST           4400  
              PU_CLERK         13900  
           30 PU_CLERK         13900  
              SH_CLERK         64300  
  
DEPARTMENT_ID JOB_ID     SUM(SALARY)  
------------- ---------- -----------  
           50 SH_CLERK         64300  
              ST_CLERK         55700  
           50 ST_CLERK         55700  
  
24 rows selected. 

CUBE eg2:

SELECT   department_id, job_id, SUM (salary)  
    FROM employees  
   WHERE department_id < 60  
GROUP BY CUBE (department_id, job_id);  
  
  
DEPARTMENT_ID JOB_ID     SUM(SALARY)  
------------- ---------- -----------  
                              211200  
              HR_REP            6500  
              MK_MAN           13000  
              MK_REP            6000  
              PU_MAN           11000  
              ST_MAN           36400  
              AD_ASST           4400  
              PU_CLERK         13900  
              SH_CLERK         64300  
              ST_CLERK         55700  
           10                   4400  
           10 AD_ASST           4400  
           20                  19000  
           20 MK_MAN           13000  
           20 MK_REP            6000  
           30                  24900  
           30 PU_MAN           11000  
           30 PU_CLERK         13900  
           40                   6500  
           40 HR_REP            6500  
           50                 156400  
  
DEPARTMENT_ID JOB_ID     SUM(SALARY)  
------------- ---------- -----------  
           50 ST_MAN           36400  
           50 SH_CLERK         64300  
           50 ST_CLERK         55700  
  
24 rows selected. 
本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-08/40467.htm

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

上一篇: GROUPING_ID的應用
请登录后发表评论 登录
全部评论

注册时间:2008-12-20

  • 博文量
    73
  • 访问量
    146237