题目描述
有一个courses
表 ,有: student (学生) 和 class (课程)。
请列出所有超过或等于5名学生的课。
例如,表:
student | class |
---|---|
A | Math |
B | English |
C | Math |
D | Biology |
E | Math |
F | Computer |
G | Math |
H | Math |
I | Math |
应该输出:
class |
---|
Math |
提示:
- 学生在每个课中不应被重复计算。
相关知识
本题不需要任何前置知识
解题过程
-
分析题意
- 统计各个课的人数
- 学生在每个课中不被重复计算
-
编写SQL
SELECT class FROM courses GROUP BY class HAVING COUNT(DISTINCT student)>4
-
提交,运行通过
学习总结
- 本题主要考察SQL的运行过程
- FROM
- WHERE
- SELECT
- GROUP BY
- HAVING
- ORDER BY
- 因为需要在聚合之后根据统计数筛选,所以不能写在WHERE子句里