每日leetcode

596. 超过 5 名学生的课 - 力扣(LeetCode)

题目

表: Courses

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| student     | varchar |
| class       | varchar |
+-------------+---------+
(student, class)是该表的主键(不同值的列的组合)。
该表的每一行表示学生的名字和他们注册的班级。

查询 至少有 5 个学生 的所有班级。

以 任意顺序 返回结果表。

结果格式如下所示。

示例 1:

输入:
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 名学生,所以我们不包括它。
-计算机课有 1 个学生,所以我们不包括它。

思路

  1. 在Courses表中对class做group by,挑选class数据,条件是count(student)>=5。

代码实现

# Write your MySQL query statement below
select class
from Courses
group by class 
having count(student) >= 5

知识积累

  • 聚合函数也可以作为where和having的判断条件。

你可能感兴趣的:(每日leetcode)