欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 国产精品极品美女自在线看免费一区二区 | 91精品啪国产在线观看免费牛牛 | 亚洲九九色 | 亚洲高清久久 | 天天色av| 国产精品久久久久久免费 | 手机看片国产免费现在观看 | xifan在线a精品一区二区视频网站 | 巨大乳女人做爰视频在线 | 国产精品外围在线观看 | 热久久亚洲 | 亚洲毛片在线观看 | 亚洲精品国产偷自在线观看 | 国产一区av在线 | 国产精品久久久久久亚洲色 | 日本一区二区精品视频 | 日本色综合 | 精品国产免费一区二区三区 | 欧美不在线 | 精品久久一二三区 | 牛牛热在线视频 | 亚洲色图3p| 精品一区二区三区免费看 | 在线播放av片 | av一级久久 | 日韩欧美高清 | 午夜神器18以下不能进免费观看 | 欧美a∨一区二区三区久久黄 | 久久久婷婷一区二区三区不卡 | 欧美乱xxxxx强 | 午夜影音 | 男女一进一出视频 | 国产欧美日本 | 久久国产精品毛片 | 精品黑人一区二区三区 | 日韩欧美一区二区在线观看 | 正在播放国产精品 | 成人颜色视频 | 亚洲一级在线观看 | 天天摸天天爽天天澡视频 | 日日干夜夜操 |