1 题目描述
表: Courses
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| student | varchar |
| class | varchar |
+-------------+---------+
在 SQL 中, (student, class) 是该表的主键列
该表的每一行表示学生的名字和他们注册的班级
查询 至少有 5 个学生 的所有班级
以任意顺序 返回结果表
2 测试用例
输入:
Courses table:
+---------+----------+
| student | class |
+---------+----------+
| A | Math |
| B | English |
| C | Math |
| D | Biology |
| E | Math |
| F | Computer |
| G | Math |
| H | Math |
| I | Math |
+---------+----------+
输出:
+---------+
| class |
+---------+
| Math |
+---------+
解释:
-数学课有 6 个学生, 所以我们包括它
-英语课有 1 名学生, 所以我们不包括它
-生物课有 1 名学生, 所以我们不包括它
3 解题思路
对 class 分组统计, 并使用 having 对分组结果进行筛选, 找到至少有 5 个学生的班级信息
select class
from Courses
group by class
having count(*) >= 5;
查询结果
+-----+
|class|
+-----+
|Math |
+-----+