在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子句用于对原始数据进行过滤。