Leetcode. 数据库596. 超过5名学生的课

596. 超过5名学生的课

SQL架构
有一个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    |
+---------+
 

提示:

学生在每个课中不应被重复计算。

题解:

直接分组计算次数即可,但是需要注意的是会出现“重修”的情况,即一个人修了两次同样的课程,因此为了避免这种情况我们直接在根据class分好组后对学生的名字去重后再计算个数即可。

代码:

select class
from courses
group by class
having count(distinct student)>=5

你可能感兴趣的:(MySQL,Leetcode每日刷题,数据库,sql)