Oracle命令 CUBE

來源:互聯網
上載者:User

Oracle基本命令:GROUP BY CUBE(欄位列表);
CUBE命令根據欄位列表,產生不同的排列組合,並根據每一種組合結果,產生統計匯總。
比如:GROUP BY CUBE( city, job, age );排列組合的結果如示:

1)city,job,age
2)city, job
3)city
4)job, age
5)age
6)city , age
7) job

所以就有7種排列組合。

2)根據每一種排列組合,產生不同的統計匯總,如下:
1) group by cube(city, job ,age );
2)   group by cube(city, job);
3)  group by cube(city);
4)group by cube(job, age );
5)group by cube(age);
6)group by cube(city, age);
7)group by cube(job);

舉例說明:
1)先統觀我們要用到的表(TABLE ):

  1. SQL> SELECT * FROM EMP ;  
  2.    
  3.      EMPNO ENAME      JOB         MGR HIREDATE          SAL DEPTNO  
  4. ---------- ---------- --------- ----- ----------- --------- ------   
  5.       7369 SMITH      CLERK      7902 1980/12/17     800.00     20  
  6.       7499 ALLEN      SALESMAN   7698 1981/2/20     1600.00     30  
  7.       7521 WARD       SALESMAN   7698 1981/2/22     1250.00     30  
  8.       7566 JONES      MANAGER    7839 1981/4/2      2975.00     20  
  9.       7654 MARTIN     SALESMAN   7698 1981/9/28     1250.00     30  
  10.       7698 BLAKE      MANAGER    7839 1981/5/1      2850.00     30  
  11.       7782 CLARK      MANAGER    7839 1981/6/9      2450.00     10  
  12.       7788 SCOTT      ANALYST    7566 1987/4/19     3000.00     20  
  13.       7839 KING       PRESIDENT       1981/11/17    5000.00     10  
  14.       7844 TURNER     SALESMAN   7698 1981/9/8      1500.00     30  
  15.       7876 ADAMS      CLERK      7788 1987/5/23     1100.00     20  
  16.       7900 JAMES      CLERK      7698 1981/12/3      950.00     30  
  17.       7902 FORD       ANALYST    7566 1981/12/3     3000.00     20  
  18.       7934 MILLER     CLERK      7782 1982/1/23     1300.00     10  

2) 根據職業(JOB)求不同職業的平均薪水(SAL):

  1. SQL> SELECT JOB, AVG(SAL) FROM EMP GROUP BY JOB ORDER BY JOB ASC ;  
  2.    
  3. JOB         AVG(SAL)  
  4. --------- ----------   
  5. ANALYST         3000  
  6. CLERK           1037.5  
  7. MANAGER         2758.33333  
  8. PRESIDENT       5000  
  9. SALESMAN        1400  

3)根據不同部門(DEPTNO),不同職業(JOB),求平均薪水(SAL):

  1. SQL> SELECT JOB, DEPTNO , AVG(SAL) FROM EMP GROUP BY JOB , DEPTNO ORDER BY JOB;  
  2.    
  3. JOB       DEPTNO   AVG(SAL)  
  4. --------- ------ ----------   
  5. ANALYST       20       3000  
  6. CLERK         10       1300  
  7. CLERK         20        950  
  8. CLERK         30        950  
  9. MANAGER       10       2450  
  10. MANAGER       20       2975  
  11. MANAGER       30       2850  
  12. PRESIDENT     10       5000  
  13. SALESMAN      30       1400  

-- 可以看到不同部門(DEPTNO:10,20,30)的平均年薪水AVG(SAL)是不一樣的。

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.