SELECT s.student_id AS '学生编号', s.student_name AS '学生姓名', SUM(c.course_score) AS '总成绩' FROM student s JOIN sc ON s.student_id = sc.student_id JOIN course c ON sc.course_id = c.course_id GROUP BY s.student_id ORDER BY '总成绩' DESC;
上面的代码中,首先从student表、sc(学生课程中间表)表、course表中联接查询得到每个学生所选的课程及对应的成绩。其中,GROUP BY语句按照每个学生的学号将课程成绩进行分组,然后使用SUM函数将每个学生的课程成绩相加得到总成绩。
在结果集中,每个学生的总成绩以降序排列,方便学生进行排名。