13)查询每门课程获得最高分的同学的学号、姓名、课程名称和成绩,并按照最高成绩从高到低进行排序。<
时间: 2024-03-25 17:36:54 浏览: 474
学科、姓名、分数。 分别计算每门学科分数最高的前三名,并显示名次。写入MySQL中。
可以使用如下 SQL 语句来查询每门课程获得最高分的同学的学号、姓名、课程名称和成绩,并按照最高成绩从高到低进行排序:
```
SELECT s.id, s.name, c.course_name, MAX(sc.score) AS max_score
FROM students s
JOIN score sc ON s.id = sc.student_id
JOIN courses c ON sc.course_id = c.id
WHERE sc.score = (
SELECT MAX(score)
FROM score
WHERE course_id = sc.course_id
)
GROUP BY c.id
ORDER BY max_score DESC;
```
其中,students 表存储学生信息,包括 id 和 name 字段;courses 表存储课程信息,包括 id 和 course_name 字段;score 表存储学生成绩信息,包括 student_id、course_id 和 score 字段。上述 SQL 语句使用了子查询和 GROUP BY 子句来查询每门课程的最高成绩,并按照最高成绩进行排序。
阅读全文