在MySQL中,HAVING子句用于在对查询结果进行分组后,对分组结果进行筛选。它与WHERE子句的区别在于,WHERE子句用于筛选行,而HAVING子句用于筛选分组。
HAVING子句的一般语法如下:
SELECT 列1, 列2, ...
FROM 表名
WHERE 条件
GROUP BY 列1
HAVING 条件
在上面的语法中,HAVING子句需要配合GROUP BY子句一起使用,首先对查询结果进行分组,然后再对分组结果进行筛选。HAVING子句中的条件通常是用于对聚合函数的结果进行筛选,例如对SUM、AVG、COUNT等函数的结果进行筛选。
举例来说,假设我们有一个学生表,包含学生的姓名、班级和成绩字段,我们想要找出每个班级平均成绩大于80分的班级,可以使用HAVING子句来实现:
SELECT 班级, AVG(成绩) as 平均成绩
FROM 学生表
GROUP BY 班级
HAVING AVG(成绩) > 80
在上面的例子中,首先根据班级分组,然后计算每个班级的平均成绩,最后筛选出平均成绩大于80分的班级。