MySQL:当count=sum&;时选择;分组
我需要选择user\u id&quick\u id,对于其测验中的问题数=正确总数的用户,这意味着他们回答100%正确 答案表:MySQL:当count=sum&;时选择;分组,mysql,sql,Mysql,Sql,我需要选择user\u id&quick\u id,对于其测验中的问题数=正确总数的用户,这意味着他们回答100%正确 答案表: quiz_id question_id user_id answer_id correct 1 1 1 1 1 1 2 1 6
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接受了“测验id”=1
“测验id=1”中的问题计数=3
正确值之和=2
所以这不是100%
测验中的用户\u id=1=>将不会被选中
但用户_id=1将通过测验_id=3被选中,因为他获得了100%
预期成果:
quiz_id user_id
2 2
3 1
4 3
6 5
注:
谢谢,您应该使用带有
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子句可以引用聚合函数,其中
子句不能
如中所述