在MySQL中,HAVING子句用于過濾由GROUP BY子句分組后的結果集。
語法如下:
SELECT column1, column2, ...
FROM table
GROUP BY column1, column2, ...
HAVING condition;
在這個語法中,HAVING子句使用與WHERE子句相似的條件表達式,用于篩選分組后的結果集。它可以包含聚合函數、列名或常量,并且可以使用比較運算符(如=、<>、<、>、<=、>=)和邏輯運算符(如AND、OR)來創建復雜的條件表達式。
HAVING子句在GROUP BY子句之后執行,并在SELECT語句的最后執行。它允許篩選分組后的結果集,并返回滿足條件的行。
以下是一個示例:
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 5000;
在該示例中,首先按部門分組員工表,并計算每個部門的平均工資。然后HAVING子句篩選出平均工資大于5000的部門。
請注意,HAVING子句僅用于對分組后的結果進行過濾,而WHERE子句用于對原始數據進行過濾。