HAVING 子句中的子查询
HAVING子句的主要功能是对分组后的数据进行过滤,如果子查询在HAVING中表示要进行分组过滤,一般返回单行单列的数据
HAVING 子查询实例
查询所有教师授课的学生上课平均人数超过全部课程平均人数的教师姓名
SELECT name
FROM teachers
WHERE id in (
SELECT teacher_id
FROM courses
GROUP BY teacher_id
HAVING AVG(student_count) > (
SELECT AVG(student_count)
FROM courses
)
);
执行输出结果
mysql> SELECT name
-> FROM teachers
-> WHERE id in (
-> SELECT teacher_id
-> FROM courses
-> GROUP BY teacher_id
-> HAVING AVG(student_count) > (
-> SELECT AVG(student_count)
-> FROM courses
-> )
-> );
+-----------------+
| name |
+-----------------+
| Eastern Heretic |
| Western Venom |
+-----------------+
2 rows in set (0.01 sec)
练习题
查询不同国籍教师的平均年龄大于所有教师平均年龄的的教师姓名
Last updated
Was this helpful?