Welcome 微信登录

首页 / 数据库 / MySQL / Oracle PL/SQL之GROUP BY CUBE

ROLLUP会根据GROUP BY后面的字段从右到左逐步以去掉右边一个字段,逐步向上累计求和,CUBE则会对GROUP BY后面的字段所有的组合进行分组求和。CUBE eg1:
  1. SELECT   department_id, job_id, SUM (salary)  
  2.     FROM employees  
  3.    WHERE department_id < 60  
  4. GROUP BY CUBE (job_id, department_id);  
  5.   
  6.   
  7. DEPARTMENT_ID JOB_ID     SUM(SALARY)  
  8. ------------- ---------- -----------  
  9.                               211200  
  10.            10                   4400  
  11.            20                  19000  
  12.            30                  24900  
  13.            40                   6500  
  14.            50                 156400  
  15.               HR_REP            6500  
  16.            40 HR_REP            6500  
  17.               MK_MAN           13000  
  18.            20 MK_MAN           13000  
  19.               MK_REP            6000  
  20.            20 MK_REP            6000  
  21.               PU_MAN           11000  
  22.            30 PU_MAN           11000  
  23.               ST_MAN           36400  
  24.            50 ST_MAN           36400  
  25.               AD_ASST           4400  
  26.            10 AD_ASST           4400  
  27.               PU_CLERK         13900  
  28.            30 PU_CLERK         13900  
  29.               SH_CLERK         64300  
  30.   
  31. DEPARTMENT_ID JOB_ID     SUM(SALARY)  
  32. ------------- ---------- -----------  
  33.            50 SH_CLERK         64300  
  34.               ST_CLERK         55700  
  35.            50 ST_CLERK         55700  
  36.   
  37. 24 rows selected.  
CUBE eg2:
  1. SELECT   department_id, job_id, SUM (salary)  
  2.     FROM employees  
  3.    WHERE department_id < 60  
  4. GROUP BY CUBE (department_id, job_id);  
  5.   
  6.   
  7. DEPARTMENT_ID JOB_ID     SUM(SALARY)  
  8. ------------- ---------- -----------  
  9.                               211200  
  10.               HR_REP            6500  
  11.               MK_MAN           13000  
  12.               MK_REP            6000  
  13.               PU_MAN           11000  
  14.               ST_MAN           36400  
  15.               AD_ASST           4400  
  16.               PU_CLERK         13900  
  17.               SH_CLERK         64300  
  18.               ST_CLERK         55700  
  19.            10                   4400  
  20.            10 AD_ASST           4400  
  21.            20                  19000  
  22.            20 MK_MAN           13000  
  23.            20 MK_REP            6000  
  24.            30                  24900  
  25.            30 PU_MAN           11000  
  26.            30 PU_CLERK         13900  
  27.            40                   6500  
  28.            40 HR_REP            6500  
  29.            50                 156400  
  30.   
  31. DEPARTMENT_ID JOB_ID     SUM(SALARY)  
  32. ------------- ---------- -----------  
  33.            50 ST_MAN           36400  
  34.            50 SH_CLERK         64300  
  35.            50 ST_CLERK         55700  
  36.   
  37. 24 rows selected.  
Oracle PL/SQL之GROUP BY ROLLUPOracle PL/SQL之GROUPING 函数相关资讯      Oracle教程 
  • Oracle中纯数字的varchar2类型和  (07/29/2015 07:20:43)
  • Oracle教程:Oracle中查看DBLink密  (07/29/2015 07:16:55)
  • [Oracle] SQL*Loader 详细使用教程  (08/11/2013 21:30:36)
  • Oracle教程:Oracle中kill死锁进程  (07/29/2015 07:18:28)
  • Oracle教程:ORA-25153 临时表空间  (07/29/2015 07:13:37)
  • Oracle教程之管理安全和资源  (04/08/2013 11:39:32)
本文评论 查看全部评论 (0)
表情: 姓名: 字数