MySQL:当count=sum&;时选择;分组

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

我需要选择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            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
注:

  • 可以使用不同数量的用户进行测验 问题
  • 测验id,用户id一起唯一(用户不能参加两次相同的测验)

  • 谢谢,

    您应该使用带有
    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子句可以引用聚合函数,其中 子句不能

    如中所述