首頁  >  文章  >  資料庫  >  總結SQL中的group by 和 having 用法相關總結

總結SQL中的group by 和 having 用法相關總結

巴扎黑
巴扎黑原創
2017-08-11 15:04:442283瀏覽

這篇文章主要介紹了SQL中的group by 和having 用法淺析,需要的的朋友參考下吧

一、sql中的group by 用法解析:

  Group By語句從英文的字面意義上理解就是「根據(by)一定的規則進行分組(Group)」。

  作用:透過一定的規則將一個資料集分割成若干個小的區域,然後針對若干個小區域進行資料處理。

  注意:group by 是先排序後分組!

  舉例說明:如果要用到group by 一般用到的就是「每」這個字, 例如現在有一個這樣的需求:查詢每個部門有多少人。就要用到分組的技術


select DepartmentID as '部门名称',COUNT(*) as '个数'
  from BasicDepartment
  group by DepartmentID

  這個就是使用了group by +欄位進行了分組,其中我們就可以理解為我們按照部門的名稱ID
DepartmentID將資料集進行了分組;然後再進行各個群組的統計資料分別有多少;

二、group by 和having 解釋

########################################################################################################################################################################### # #  前提:必須了解sql語言中一種特殊的函數-聚合函數。 ######  例如:SUM, COUNT, MAX, AVG等。這些函數和其它函數的根本區別就是它們一般作用在多個記錄上。 ######  WHERE關鍵字在使用集合函數時不能使用,所以在集合函數中加上了HAVING來起到測試查詢結果是否符合條件的作用。 ######  having稱為分組篩選條件,也就是分組所需的條件,所以必須與group by聯用。 ######  需要注意說明:當同時含有where子句、group by 子句、having子句及聚集函數時,執行順序如下:######  1、執行where子句尋找符合條件的資料;######  2、使用group by 子句將資料分組;######  3、對group by 子句形成的群組執行聚集函數計算每一組的值;#### ##  4、最後用having 子句去掉不符合條件的群組。 ######  having 子句中的每個元素也必須出現在select清單中。有些資料庫例外,如oracle.######  having子句和where子句都可以用來設定限制條件以使查詢結果滿足一定的條件限制。 ######  having子句限制的是群組,而不是行。聚合函數計算的結果可以當條件來使用,where子句中不能使用聚集函數,而having子句中可以。 ###

以上是總結SQL中的group by 和 having 用法相關總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn