我有两张桌子questions
和answered
. answered
包含所有用户的所有问题的答案。一个用户可以多次回答一个问题。可以正确或错误地回答问题。
我正在寻找一个查询,它将返回一个类别中所有问题的正确和错误答案的计数。不过,我只想使用最新的答案。因此,如果用户之前错误地回答了相同的问题并且最近正确地回答了相同的问题,我只想计算最新的 - 正确的 - 一个。
这是我到目前为止得到的:
http://sqlfiddle.com/#!2/31e2e/2/0
SELECT a.correct, count(*) as count
FROM answered a JOIN questions q ON a.question_id = q.id
WHERE a.user_id = 1 AND q.category_id = 1
GROUP BY correct
它返回
| CORRECT | COUNT |
-----------------------
| 0 | 2 |
-----------------------
| 1 | 4 |
-----------------------
我想要的是
| CORRECT | COUNT |
-----------------------
| 0 | 1 |
-----------------------
| 1 | 2 |
-----------------------