题目:
有一个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 | +---------+
Note:
学生在每个课中不应被重复计算。
解题思路:
使用子查询创建临时表,然后进行select操作。
代码实现:
# Write your MySQL query statement below SELECT class FROM ( SELECT class, COUNT(DISTINCT student) AS num FROM courses GROUP BY class ) AS tmp_table WHERE num >= 5;