欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

group by的使用說明

系統 1704 0

?

SQL HAVING 出現的原因

  在 SQL 中增加 HAVING 子句原因是,WHERE 關鍵字無法與合計函數一起使用。

SQL HAVING 語法

      
        SELECT
      
      
         column_name, aggregate_function(column_name)


      
      
        FROM
      
      
         table_name


      
      
        WHERE
      
      
         column_name operator value


      
      
        GROUP
      
      
        BY
      
      
         column_name


      
      
        HAVING
      
       aggregate_function(column_name) operator value
    

SQL HAVING 實例

我們擁有下面這個 "Orders" 表:

O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter

現在,我們希望查找訂單總金額少于 2000 的客戶。

我們使用如下 SQL 語句:

      
        SELECT
      
       Customer,
      
        SUM
      
      (OrderPrice) 
      
        FROM
      
      
         Orders


      
      
        GROUP
      
      
        BY
      
      
         Customer


      
      
        HAVING
      
      
        SUM
      
      (OrderPrice)
      
        <
      
      
        2000
      
    

結果集類似:

Customer SUM(OrderPrice)
Carter 1700

現在我們希望查找客戶 "Bush" 或 "Adams" 擁有超過 1500 的訂單總金額。

我們在 SQL 語句中增加了一個普通的 WHERE 子句:

      
        SELECT
      
       Customer,
      
        SUM
      
      (OrderPrice) 
      
        FROM
      
      
         Orders


      
      
        WHERE
      
       Customer
      
        =
      
      
        '
      
      
        Bush
      
      
        '
      
      
        OR
      
       Customer
      
        =
      
      
        '
      
      
        Adams
      
      
        '
      
      
        GROUP
      
      
        BY
      
      
         Customer


      
      
        HAVING
      
      
        SUM
      
      (OrderPrice)
      
        >
      
      
        1500
      
    

結果集:

Customer SUM(OrderPrice)
Bush 2000
Adams 2000

?


  在select 語句中可以使用group by 子句將行劃分成較小的組,然后,使用聚組函數返回每一個組的匯總信息,另外,可以使用having子句限制返回的結果集。group by 子句可以將查詢結果分組,并返回行的匯總信息Oracle 按照group by 子句中指定的表達式的值分組查詢結果。

  在帶有group by 子句的查詢語句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚組函數

??

      
        select
      
      
        max
      
      (sal),job emp 
      
        group
      
      
        by
      
      
         job;

//(注意max(sal), job 的job并非一定要出現,但有意義 )
      
    

  查詢語句的select 和group by ,having 子句是聚組函數唯一出現的地方,在where 子句中不能使用聚組函數。

      
        select
      
       deptno,
      
        sum
      
      (sal) 
      
        from
      
       emp 
      
        where
      
       sal
      
        >
      
      
        1200
      
      
        group
      
      
        by
      
       deptno 
      
        having
      
      
        sum
      
      (sal)
      
        >
      
      
        8500
      
      
        order
      
      
        by
      
       deptno;
    

  當在gropu by 子句中使用having 子句時,查詢結果中只返回滿足having條件的組。在一個sql語句中可以有where子句和having子句。having 與where 子句類似,均用于設置限定條件。
?
  where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。
  having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。

  查詢每個部門的每種職位的雇員數
?

      
        select
      
       deptno,job,
      
        count
      
      (
      
        *
      
      ) 
      
        from
      
       emp 
      
        group
      
      
        by
      
       deptno,job;
    

?

如果你對何時應該使用WHERE,何時使用HAVING仍舊很迷惑,請遵照下面的說明: ?

  WHERE語句在GROUP BY語句之前;SQL會在分組之前計算WHERE語句。?

  HAVING語句在GROUP BY語句之后;SQL會在分組之后計算HAVING語句。

?

PS: 因為我遇到了這個問題,現在已經解決了,所以還是記錄哈。

?

group by的使用說明


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本精高清区一 | 久热国产在线视频 | 国产一级毛片高清视频完整版 | 婷婷色在线 | 精品国产欧美 | 国产精品福利在线观看免费不卡 | 色125综合网 | 精品国产91亚洲一区二区三区www | 成人午夜免费剧场 | 亚洲一区二区视频在线观看 | 久久久人成影片一区二区三区 | 天天爽天天碰狠狠添 | 丁香5月婷婷 | 久久久久久久国产精品电影 | 三级av| 欧美影院入口 | 免费的av网站 | 日韩成人精品在线 | 男人激烈吮乳动态图 | 婷婷久久综合九色综合九七 | 一区高清 | 手机在线观看你懂得 | 欧美日韩网站 | 国产日 | 欧美高清极品videossex | a高清免费毛片久久 | 亚洲国产成人久久综合碰 | 色综合美国色农夫网 | 国产日本在线播放 | 天天夜干 | 美剧三体 | 狠狠色丁香婷婷综合 | 国产高清在线观看av | 国产精品视频第一区二区三区 | 日本一区二区高清不卡 | 久久精品人人做人人爽 | 免费观看一级毛片 | 51色视频| 99久久免费看精品 | 超碰在线国产 | 丁香婷婷六月综合交清 |