我需要选择user_id& quiz_id,对于他们的测验中的问题数量=正确总和的用户,这意味着他们回答100%正确
答案表:
quiz_id question_id user_id answer_id correct
1 1 1 1 1
1 2 1 6 0
1 3 1 9 1
2 1 2 1 1
2 2 2 5 1
3 4 1 17 1
3 5 1 21 1
3 6 1 25 1
4 1 3 1 1
5 4 4 18 0
6 1 5 1 1
6 2 5 5 1
7 1 3 2 0
7 2 3 7 0
前1: 用户1选择“quiz_id”= 1
“quiz_id = 1”中的问题数= 3
正确之和= 2
所以它不是100%
quiz_id = 1 =>中的user_id = 1不会选择
但是,如果quiz_id = 3,则选择user_id = 1,因为他得到了100%
预期结果:
quiz_id user_id
2 2
3 1
4 3
6 5
注释:
感谢,
答案 0 :(得分:2)
您应该使用带HAVING
子句的聚合查询:
SELECT quiz_id, user_id
FROM quiz_answer -- or whatever the name is
GROUP BY quiz_id, user_id
HAVING COUNT(question_id) = SUM(correct)
此处您必须使用HAVING
代替WHERE
,因为
HAVING子句可以引用聚合函数,即WHERE 条款不能
在the docs中指定。