mysql查询所有学生的学号、姓名、选课数、总成绩
封面图
•
2025-11-24
•
MySQL
250
0
0
0
要查询所有学生的学号、姓名、选课数(即选修课程的数量)以及总成绩(即所有课程成绩的总和),你可以使用 `SELECT` 语句配合 `COUNT()` 和 `SUM()` 聚合函数,同时使用 `GROUP BY` 对学生进行分组。 假设你有以下表结构: - **学生表**:`student`,包含字段: - `student_id`(学号) - `name`(姓名) - **选课表**:`enroll`,包含字段: - `student_id`(学号) - `course_id`(课程编号) - `score`(成绩) ### SQL 查询语句如下: ```sql SELECT s.student_id, s.name, COUNT(e.course_id) AS course_count, SUM(e.score) AS total_score FROM student s LEFT JOIN enroll e ON s.student_id = e.student_id GROUP BY s.student_id, s.name; ``` ### 说明: - `LEFT JOIN`:确保即使某个学生没有选课,也会显示出来(此时 `course_count` 为 0,`total_score` 为 NULL)。 - `COUNT(e.course_id)`:统计每个学生的选课数量。 - `SUM(e.score)`:统计每个学生的总成绩。 - `GROUP BY`:按学生分组,以计算每个学生的统计信息。 ### 如果你想只显示有选课记录的学生(不包括没选课的): 可以将 `LEFT JOIN` 改为 `INNER JOIN`: ```sql SELECT s.student_id, s.name, COUNT(e.course_id) AS course_count, SUM(e.score) AS total_score FROM student s INNER JOIN enroll e ON s.student_id = e.student_id GROUP BY s.student_id, s.name; ``` 如果你的表结构不同,请告诉我,我可以帮你调整查询语句。
上一篇:
mysql查询平均成绩大于60分的学生的学号和平均成绩
下一篇:
mysql查询姓“猴”的老师的个数
标题录入,一次不能超过6条
留言
评论