【发布时间】:2014-08-04 19:06:47
【问题描述】:
我做了一个查询,其中将预定义答案表中的结果与用户为多个问题输入的答案进行比较。现在的问题是我想获得每个用户的总分(我可以根据状态正确计算)。以下查询为我提供了所有用户数据,每个问题的答案状态是否正确。
SELECT qa.question_id, qa.test_id, uta.user_answer,uta.user_id, qa.type,
qa.answers correct_answer,
CASE WHEN uta.user_answer = qa.answers THEN 'correct' ELSE 'incorrect' END
AS status
FROM questions_answer qa
LEFT JOIN
(
SELECT user_id, type, test_id, question_id,
GROUP_CONCAT(answers ORDER BY answers) AS user_answer,
timestamp from user_test_answers
WHERE test_id = '1'
GROUP BY user_id, question_id
) uta
ON qa.question_id = uta.question_id
where qa.test_id=1
如果我最后添加GROUP BY user_id,它也会按user_id对结果进行分组,但是如何计算所有状态correct,以便我可以获得正确答案的总数。
【问题讨论】:
-
考虑提供适当的 DDL(和/或 sqlfiddle)以及所需的结果集
标签: mysql group-by aggregate-functions