HAVING子句用于在多表查询中对分组后的结果进行过滤。与WHERE子句不同的是,WHERE子句用于筛选行,而HAVING子句用于筛选组。
在多表查询中使用HAVING子句的步骤如下:
例如,假设有两个表A和B,表A中存储了学生的成绩信息,表B中存储了学生的基本信息,现在要查询各个班级平均成绩大于80分的班级信息,可以使用以下SQL语句:
SELECT B.class, AVG(A.score) as avg_score
FROM tableA A
JOIN tableB B
ON A.student_id = B.student_id
GROUP BY B.class
HAVING AVG(A.score) > 80;
在上面的例子中,首先使用JOIN将表A和表B连接起来,然后使用GROUP BY对班级进行分组,接着使用AVG函数计算每个班级的平均成绩,最后在HAVING子句中筛选出平均成绩大于80分的班级信息。