查询每个学生的学号、姓名,课程数,最高成绩,最低成绩,平均成绩,总成绩,不及格科目数
时间: 2024-10-18 12:04:41 浏览: 52
要查询每个学生的学号、姓名,课程数,最高成绩,最低成绩,平均成绩,总成绩以及不及格科目数,你需要从三个关联表中获取数据:`Students`(包含学号和姓名)、`Courses`(包含课程ID和课程名)、`Enrollments`(记录学生选课情况)以及`Grades`(记录每个学生在每门课程的成绩)。这是一个典型的分组聚合查询。下面是SQL查询的一个示例:
```sql
SELECT s.student_id, s.student_name,
COUNT(DISTINCT ce.course_id) AS total_courses,
MAX(g.grade) AS highest_score,
MIN(g.grade) AS lowest_score,
AVG(g.grade) AS average_score,
SUM(g.grade) AS total_grades,
COUNT(CASE WHEN g.grade < 60 THEN 1 END) AS failed_courses
FROM Students s
JOIN Enrollments e ON s.student_id = e.student_id
JOIN Courses c ON e.course_id = c.course_id
JOIN Grades g ON e.enrollment_id = g.enrollment_id
GROUP BY s.student_id, s.student_name;
```
这个查询会返回每个学生的详细成绩信息,并计算出他们的课程总数、最高分、最低分、平均分、总分以及不及格课程的数量(低于60分的情况)。
阅读全文