注:分組查詢中查詢的表達式或列必須滿足以下四個條件之一:
常數
聚合函數,每個分組生成單個值
分組列,每個分組具有相同的值
上述三項組成的表達式.
having子句爲一個過濾器,就像where子句剔除查詢中不需要的行一樣,having子句剔除不需要的分組。爲什麼不直接使用where進行篩選數據呢?原因是在having子句中可以使用聚合函數,但是where子句中不行。
注:一般having子句總是與group by子句同時出現,但having子句也可單獨使用,此時系統認爲滿足where條件的所有記錄是一個分組。