這篇文章主要介紹了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中文網其他相關文章!