本文主要是介绍[LeetCode] 596:超过5名学生的课,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有一个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:
学生在每个课中不应被重复计算。
看完题目,觉得很简单呀;先分组(group by)再判断(having count( * ) >= 5)不就行了嘛?
代码如下:
SELECT class FROM courses GROUP BY class HAVING COUNT(class) >= 5
在LeetCode上执行后,返回的数据是正确的,但是提交时就出现错误了,再看一遍题目;我发现我遗漏了一个题目:
Note:
学生在每个课中不应被重复计算。
修改后的代码为:
# Write your MySQL query statement below
select a.class from(select DISTINCT student ,class ,COUNT(*) from courses group by class,student ) agroup by a.class having count(*) >= 5
参考:Classes More Than 5 Students
这篇关于[LeetCode] 596:超过5名学生的课的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!