我有一个课程表,可以存储学生的课程。表格的每一行都是一个课程。 列是:
student id, course, term
我想看看有多少学生在第x学期修读课程1和(课程2或课程3)和课程4。
如何编写SQL语句来执行查询?
答案 0 :(得分:1)
你可以使用case
表达式来对待2和3,然后计算每个学生不同的课程数量:
SELECT student_id
FROM courses
WHERE course >= 1 AND course <= 4
GROUP BY student_id
HAVING COUNT (DISTINCT CASE course WHEN 2 THEN 3 ELSE course END) = 3