从course表和score表查询所有课程中的最高分,最低分,平均分以及及格率
时间: 2024-10-17 12:10:38 浏览: 17
要从`course`表和`score`表中获取这些信息,你需要首先关联这两个表(通常是通过课程ID关联),然后对每个课程的分数进行统计。这里假设`course`表有`course_id`字段,`score`表有`student_id`, `course_id`, 和 `score`字段。
以下是SQL查询的一个例子:
```sql
-- 获取最高分
SELECT c.course_id, MAX(s.score) as max_score
FROM course c
JOIN score s ON c.course_id = s.course_id
GROUP BY c.course_id;
-- 获取最低分
SELECT c.course_id, MIN(s.score) as min_score
FROM course c
JOIN score s ON c.course_id = s.course_id
GROUP BY c.course_id;
-- 计算平均分
SELECT c.course_id, AVG(s.score) as avg_score
FROM course c
JOIN score s ON c.course_id = s.course_id
GROUP BY c.course_id;
-- 及格率(这里假设60分为及格线)
SELECT c.course_id, COUNT(CASE WHEN s.score >= 60 THEN 1 ELSE NULL END) * 100.0 / COUNT(*) as pass_rate
FROM course c
JOIN score s ON c.course_id = s.course_id
GROUP BY c.course_id;
```
以上查询分别给出了每个课程的最高分、最低分、平均分以及及格人数占总人数的比例(即及格率)。注意这里的及格率计算需要考虑NULL值,因此使用了CASE表达式来处理。
阅读全文