SQL語句中where和having的區別


SQL語句中where和having的區別

where是一個約束聲明,是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據。where字句中不能包含聚組函數。where語句顯示特定的行。

having是一個過濾聲明,是篩選滿足條件的組,即在分組之后過濾數據。having字句中可以包含聚組函數。having語句顯示特定的組。

例1:查詢平均工資大於200000的部門

此時只能使用having,而不能使用where。一來,我們要使用聚合語句avg;二來,我們要對聚合后的結果進行篩選(average > 3000),因此使用where會被告知sql有誤。

例2:查詢每個部門工資大於30000的員工個數

where在group by之前執行,having 在group by 之后執行。

where和having 可以同時存在一個SQL語句中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM