mysql统计每个学生选课门数及总学分
时间: 2023-08-04 16:31:38 浏览: 169
学生选课.sql
可以使用以下 SQL 语句来实现:
```
SELECT s.id, s.name, COUNT(sc.id) AS total_courses, SUM(c.credit) AS total_credits
FROM students s
LEFT JOIN student_courses sc ON s.id = sc.student_id
LEFT JOIN courses c ON c.id = sc.course_id
GROUP BY s.id;
```
其中,students 表存储学生信息,包括学生 id 和姓名;courses 表存储课程信息,包括课程 id 和学分;student_courses 表存储学生选课关系信息,包括学生 id 和课程 id。
上述 SQL 语句通过左连接关联三个表,按照学生 id 分组,统计每个学生选课门数和总学分。其中,COUNT(sc.id) 统计选课门数,SUM(c.credit) 统计总学分。
注意,如果一个学生没有选课,则其统计结果中选课门数为 0,总学分为 NULL。如果需要将总学分为 NULL 的结果转换为 0,可以将 SUM 函数改为 IFNULL(SUM(c.credit), 0)。
阅读全文