天天看點

sql

where 在分組和聚集計算之前選取輸入行(是以,它控制哪些行進入聚集計算), 而 having 在分組和聚集之後選取分組的行。

是以,where 子句不能包含聚集函數; 因為試圖用聚集函數判斷那些行輸入給聚集運算是沒有意義的。 相反,having 子句總是包含聚集函數。

(嚴格說來,你可以寫不使用聚集的 having 子句, 但這樣做隻是白費勁。同樣的條件可以更有效地用于 where 階段。)