# Write your MySQL query statement below
596. 超过5名学生的课
表: Courses
+-------------+---------+ | Column Name | Type | +-------------+---------+ | student | varchar | | class | varchar | +-------------+---------+ (student, class)是该表的主键列。 该表的每一行表示学生的名字和他们注册的班级。
编写一个SQL查询来报告 至少有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个学生,所以我们不包括它。
原站题解
pythondata 解法, 执行用时: 300 ms, 内存消耗: 60.8 MB, 提交时间: 2023-08-09 17:28:41
import pandas as pd def find_classes(courses: pd.DataFrame) -> pd.DataFrame: df = courses.groupby('class').size().reset_index(name='count') df = df[df['count'] >= 5] return df[['class']]
pythondata 解法, 执行用时: 284 ms, 内存消耗: 60.9 MB, 提交时间: 2023-08-09 17:28:16
import pandas as pd def find_classes(courses: pd.DataFrame) -> pd.DataFrame: # 使用 groupby 和 count 函数对班级进行分组计数 class_counts = courses.groupby('class')['student'].count().reset_index() # 筛选出学生数量大于等于5的班级 result = class_counts[class_counts['student'] >= 5] return result[['class']]
mysql 解法, 执行用时: 2105 ms, 内存消耗: N/A, 提交时间: 2018-08-22 11:35:11
# Write your MySQL query statement below SELECT class from courses group by class having count(DISTINCT student) >= 5