如何显示学生失败的课程数量

时间:2014-11-21 02:17:44

标签: sql count

我已经有代码显示未通过课程的学生,但我也希望显示学生失败的课程数量。

这是我目前的代码:

SELECT s.studentid, s.name
FROM student s
INNER JOIN notes ON s.studentid = notes.studentid
WHERE notes.note <  "50"
ORDER BY student.name

我有三张桌子。

学生:

| studentid | name |

注释:

| studentid | note | courseid |

和当然:

| courseid |

2 个答案:

答案 0 :(得分:0)

使用汇总功能 Count()

SELECT s.studentid, s.name,notes.courseid ,count(1) CNT
FROM student s
INNER JOIN notes ON s.studentid = notes.studentid
WHERE (notes.note) <  "50"
group by s.studentid, s.name, notes.courseid
ORDER BY student.name

答案 1 :(得分:0)

我知道这已经有了答案,但我想提供一个不同的观点:

由于您在notes表中有studentid和courseid,因此您可以从该表中获取所需的所有内容:

SELECT studentid, COUNT(*) AS numFailedCourses
FROM notes
WHERE note < 50
GROUP BY studentid

这将选择Notes表中具有失败成绩的所有行,并按学生ID进行分组。但是,如果你确实需要学生姓名,你仍然需要加入学生表,这与已经给出的答案相同:

SELECT s.studentid, s.name, COUNT(*) AS numFailedCourses
FROM notes n
JOIN students s ON s.studentid = n.studentid
WHERE n.note < 50
GROUP BY s.studentid
ORDER BY s.name