用mysql一表查询各门课程的选修及格人数、及格比率。
时间: 2024-10-22 14:21:38 浏览: 70
要在MySQL中查询一门课程的选修及格人数以及及格比率,你需要创建一个SQL查询,通常涉及到对数据库表的JOIN操作,并可能需要使用GROUP BY和COUNT函数来统计及格人数,同时计算总人数和比率。假设你有一个名为`students`的表,包含学生信息,如`student_id`, `course_id`, 和`grade`字段,其中`course_id`标识课程,`grade`表示成绩(例如0代表不及格,1代表及格),你可以尝试这样的查询:
```sql
SELECT
c.course_id AS '课程ID',
COUNT(s.student_id) AS '选修人数',
(COUNT(CASE WHEN s.grade = 1 THEN s.student_id END) * 100.0 / COUNT(s.student_id)) AS '及格比率'
FROM
students s
JOIN
courses c ON s.course_id = c.id
WHERE
c.course_id = '目标课程ID' -- 请替换为你要查询的具体课程ID
GROUP BY
c.course_id;
```
在这个查询中:
- `COUNT(s.student_id)` 计算了选修该课程的学生总数。
- `COUNT(CASE WHEN s.grade = 1 THEN s.student_id END)` 计算了及格(grade=1)的学生数。
- `(COUNT(...) * 100.0 / COUNT(...))` 计算了及格比率,乘以100得到百分比。
阅读全文