在mysql中查询每门课成绩低于平均分学生成绩信息(学号,姓名,课程号,课程名,成绩,平均分)
时间: 2024-11-24 12:41:29 浏览: 22
在MySQL中,你可以使用SQL查询来获取每门课成绩低于平均分的学生信息。假设我们有两个表:`students` 和 `courses`,分别存储学生基本信息(学号、姓名)和课程成绩(课程号、课程名、成绩)。你可以通过JOIN操作并计算每个课程的成绩平均分来完成这个查询。以下是查询的一个示例:
```sql
SELECT s.student_id, s.name AS 学生姓名, c.course_id, c.course_name, sc.score AS 成绩, AVG(sc.score) OVER (PARTITION BY c.course_id) AS 平均分
FROM students s
JOIN scores sc ON s.student_id = sc.student_id
JOIN courses c ON sc.course_id = c.course_id
WHERE sc.score < (SELECT AVG(score) FROM scores WHERE course_id = c.course_id)
```
这个查询做了以下几件事:
1. 使用JOIN将学生、成绩和课程表连接起来。
2. 计算每个课程的平均分(AVG(sc.score) OVER (PARTITION BY c.course_id))。
3. 过滤出成绩低于平均分的学生。
阅读全文