mysql中查询各门课程的选修及格人数、及格比率。
时间: 2024-10-20 17:17:59 浏览: 2
在MySQL中,你可以通过编写SQL查询来获取各门课程的选修学生人数以及各自的及格比例。假设我们有一个名为`students`的表,其中包含`course_id`, `student_id`, 和 `grade`字段,其中`course_id`标识课程,`grade`表示成绩(例如0表示不及格,1表示及格)。以下是查询的一个示例:
```sql
SELECT course_id, COUNT(student_id) AS total_students,
SUM(CASE WHEN grade = 1 THEN 1 ELSE 0 END) AS passed_students,
(SUM(CASE WHEN grade = 1 THEN 1 ELSE 0 END) / COUNT(student_id)) * 100 AS pass_rate
FROM students
GROUP BY course_id;
```
这个查询做了以下几件事:
1. 使用`COUNT(student_id)`计算每门课程的总选修人数。
2. `SUM(CASE WHEN grade = 1 THEN 1 ELSE 0 END)`计算及格的学生数,`CASE`语句检查每个学生的成绩是否为1(即及格)。
3. 计算及格率,即及格学生数除以总学生数乘以100。
阅读全文