• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Oracle教程
    Oracle練習題

    Oracle分組查詢

     

     

    分組查詢主要涉及到兩個子句,分別是:group by和having。

     

     

    group by

     

    1、取得每個工作崗位的工資合計,要求顯示崗位名稱和工資合計

     

    select job, sum(sal) from emp group by job;

     

     

    采用group by,非聚合函數使用的字段必須參與分組。

     

    如果使用了order by,order by必須放到group by后面。

     

     

    2、按照工作崗位和部門編碼分組,取得的工資合計

     

    ● 原始數據

     

    SQL> select * from emp;
    
         EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17-12月-80            800                      20
          7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
          7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
          7566 JONES      MANAGER         7839 02-4月 -81           2975                    30
          7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
          7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
          7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
          7788 SCOTT      ANALYST         7566 19-4月 -87           3000                     20
          7839 KING       PRESIDENT            17-11月-81           5000                     10
          7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
          7876 ADAMS      CLERK           7788 23-5月 -87           1100                     20
          7900 JAMES      CLERK           7698 03-12月-81            950                     30
          7902 FORD       ANALYST         7566 03-12月-81           3000                    20
          7934 MILLER     CLERK           7782 23-1月 -82           1300                    10
    
    已選擇14行。

     

    ● 分組語句

     

    select job,deptno, sum(sal) from emp group by job,deptno;

     

    ● 分組后的數據

     

    SQL> select job,deptno, sum(sal) from emp group by job,deptno;
    
    JOB           DEPTNO   SUM(SAL)
    --------- ---------- ----------
    PRESIDENT         10       5000
    CLERK             10       1300
    SALESMAN          30       5600
    ANALYST           20       6000
    MANAGER           30       5825
    MANAGER           10       2450
    CLERK             30        950
    CLERK             20       1900
    
    已選擇8行。

     

    Group by中不能使用聚合函數。

     

     

    having

     

    如果想對分組數據再進行過濾需要使用having子句。

     

    取得每個崗位的平均工資大于2000

     

     select job, avg(sal) from emp group by job having avg(sal) >2000;

     

     

    分組函數的執行順序:

     

    1、 根據條件查詢數據

     

    2、 分組

     

    3、 采用having過濾,取得正確的數據

     

     

    select語句總結

     

    一個完整的select語句格式如下:

     

    select 字段
    from 表名
    where …….
    group by ……..
    having …….
    order by ……..

     

    以上語句的執行順序:

     

    1、首先執行where語句過濾原始數據

     

    2、 執行group by進行分組

     

    3、 執行having對分組數據進行操作

     

    4、 執行select選出數據

     

    5、執行order by排序

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏