给定一张考试结果表,其中 1 == PASS 和 0 == FAIL
ID Name Test Result
--------------------
1 John MATH 1
2 John ENGL 1
3 Mary MATH 1
4 Mary PSYC 0
编辑:假设名称是唯一的。
我需要为那些1) 通过所有测试
2) 至少通过一项测试的人获取所有记录
因此,第一个查询应该返回 John 和他的所有记录,第二个查询应该返回 Mary 和她的所有记录(包括通过 PASS 的记录)。
我正在尝试对其LEFT OUTER JOIN
自身进行比较并比较计数,但似乎没有得到有效的查询。
SELECT * FROM Results R1
LEFT OUTER JOIN Results R2 on R1.ID=R2.ID and R2.Result=1
WHERE ??? count of rows from R1 is compared to count of non-null rows from R2