HAVING子句在SQL中用于對GROUP BY子句的結果進行過濾。它允許您根據聚合函數的結果篩選查詢結果。HAVING子句通常用于在查詢中使用GROUP BY時,對分組后的結果進行過濾。
HAVING子句的語法如下:
SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件
GROUP BY 列名1, 列名2, ...
HAVING 條件
在上述語法中,HAVING子句跟在GROUP BY子句之后,它可以使用聚合函數(如SUM、COUNT、AVG等)來篩選結果。只有滿足HAVING條件的分組才會包含在查詢結果中。
以下是一個示例,假設我們有一個員工表,想要查找部門平均工資大于5000的部門:
SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING AVG(salary) > 5000;
在上述示例中,我們先按部門進行分組,然后計算每個部門的平均工資,并將其命名為avg_salary。最后,通過HAVING子句篩選出平均工資大于5000的部門。
注意:HAVING子句僅適用于GROUP BY子句中的聚合函數結果。如果沒有使用GROUP BY子句,HAVING子句將被視為無效。