有课程表,学生表,成绩表如下,查询每个同学超过该课程平均分的成绩信息,输出学号,课程号,成绩及课程平均成绩。
时间: 2024-01-02 21:02:12 浏览: 175
mysql 查询语句学生表、课程表、 成绩表、教师表.docx
可以使用以下 SQL 查询语句来实现:
```
SELECT s.student_id, g.course_id, g.score, c.avg_score
FROM grade g
JOIN student s ON g.student_id = s.student_id
JOIN (
SELECT course_id, AVG(score) AS avg_score
FROM grade
GROUP BY course_id
) c ON g.course_id = c.course_id
WHERE g.score > c.avg_score
ORDER BY s.student_id, g.course_id;
```
其中,`grade` 表为成绩表,包含 `student_id`(学生ID)、`course_id`(课程ID)和 `score`(成绩)三个字段;`student` 表为学生表,包含 `student_id` 和其他学生信息;`c` 子查询为以课程ID为分组,计算每个课程的平均成绩;最终结果按学生ID和课程ID排序,输出学生ID、课程ID、成绩及课程平均成绩。
阅读全文