1. 程式人生 > >DataBase-group by, having 和 where 區別

DataBase-group by, having 和 where 區別

group by作用

在select 語句中可以使用group by 子句將行劃分成較小的組,一旦使用分組後select操作的物件變為各個分組後的資料,使用聚組函式返回的是每一個組的彙總資訊。

having和where區別

當在gropu by 子句中使用having 子句時,查詢結果中只返回滿足having條件的組,並且是分組之後的的過濾

where 與 having 子句類似,均用於設定限定條件,但是 where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,條件中不能包含聚合函式,使用where條件顯示特定的行。

order by

使用order by排序時order by子句置於group by 之後 並且 order by 子句的排序標準不能出現在select查詢之外的列。

例子:

返回按照name分組後,每組條目大於6的分組name,並且按分組name排序

select name from dbo.M_OperationAuthority group by name having Count(*)>6 order by name

結果如下所示:
這裡寫圖片描述