1. 程式人生 > >where、having之間的區別和用法

where、having之間的區別和用法

出處https://blog.csdn.net/JDJH1024/article/details/76647866
聚合函式是比較where、having 的關鍵。
開門見山。where、聚合函式、having 在from後面的執行順序:

where>聚合函式(sum,min,max,avg,count)>having

列出group by來比較二者。()因where和having 在使用group by時問的最多)
若須引入聚合函式來對group by 結果進行過濾 則只能用having。(此處不多說,自己想 是先執行聚合函式還是先過濾 然後比對我上面列出的執行順序 一看便知)

樣例:select sum(score) from student where sex=‘man’ group by name having sum(score)>210

注意事項 :
1、where 後不能跟聚合函式,因為where執行順序大於聚合函式。
2、where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾資料,條件中不能包含聚組函式,使用where條件顯示特定的行。
3、having 子句的作用是篩選滿足條件的組,即在分組之後過濾資料,條件中經常包含聚組函式,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。

.

作者:程式設計師那些破事兒
出處:https://blog.csdn.net/wjq6940
歡迎投稿分享個人工作,生活,專案經驗。
號內有各類程式設計教學視訊資源哦!
這裡寫圖片描述