本文主要是介绍596. Classes More Than 5 Students - 超过5名学生的课 <easy>,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一个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 |
+---------+
提示:
学生在每个课中不应被重复计算。
分析:对科目分组,然后对每组计数筛选,需要注意where与having的针对聚合函数使用!
题目easy,就是测试用例courses表竟然可以有重复数据。这不合理好吧。加个distinct解决。
AC代码:
select class from courses
group by class
having count(distinct student)>4
另:想使用where需要包一层临时表
SELECTclass
FROM(SELECTclass, COUNT(DISTINCT student) AS numFROMcoursesGROUP BY class) AS temp_table
WHEREnum >= 5
;
这篇关于596. Classes More Than 5 Students - 超过5名学生的课 <easy>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!