要找出选课最多的学生,你可以使用以下 SQL 查询:
sql
SELECT student_id, COUNT(*) AS num_courses
FROM enrollments
GROUP BY student_id
ORDER BY num_courses DESC
LIMIT 1;
* student_id :学生的 ID
* num_courses :学生选课的数量
该查询将从 enrollments 表中选择 student_id 和 num_courses 字段。它将按 student_id 分组,计算每位学生选课的数量,并按数量从大到小对结果进行排序。 LIMIT 1 子句只返回选课最多的那位学生的记录。
使用 JOIN 查询
你还可以使用 JOIN 查询来找出选课最多的学生,同时获取有关学生的其他信息。例如,以下查询返回学生的姓名和选课数量:
sql
SELECT s.name, COUNT(e.course_id) AS num_courses
FROM students AS s
JOIN enrollments AS e ON s.id = e.student_id
GROUP BY s.id
ORDER BY num_courses DESC
LIMIT 1;
* s.name :学生的姓名
* num_courses :学生选课的数量
该查询从 students 表(别名为 s )和 enrollments 表(别名为 e )中选择 s.name 和 num_courses 字段。它使用 JOIN 子句在 s.id 和 e.student_id 字段上连接两个表,将学生的姓名与其选课数量关联起来。
请注意,这些查询只返回选课最多的单个学生。如果你需要获取所有学生的选课数量,可以省略 LIMIT 1 子句。