-1

こんにちは私は条件ごとの結果を与えるmysqlクエリを書きたいです。

例えば。質問、回答の値、ユーザーが選択した値のフィールドを含むテーブルがあります。

ユーザーは何度もその質問に答えるために出席することができます。

qid rightanzwronganz
11 4 2
11 4 4
11 4 1
25 1 1

こんな感じで出したい
qid rightanzwronganz
11 1 2   
25 1 0   

ユーザーがその質問に対して正解と不正解を何回提供したかを表示したいですか?そのためのmysqlクエリを作成するにはどうすればよいですか?どんな体も私を助けることができますか?

4

2 に答える 2

2
SELECT SUM(IF(answer = 42, 1, 0)) AS correct_count, count(*) as total_count
FROM answers
WHERE user_id = 13

検査しuser_idたいのが13で、正解が42だとします。

于 2011-07-06T05:51:12.047 に答える
2

すべての質問について

SELECT a.userId, q.qid
,SUM( CASE WHEN q.answer = a.answer THEN 1 ELSE 0 END) AS correct_answers
,SUM( CASE WHEN q.answer = a.answer THEN 0 ELSE 1 END) AS wrong_answers
FROM questions q
JOIN answers a ON q.qid = a.qid
GROUP BY a.userId, q.qid

特定の質問について

SELECT a.userId
,SUM( CASE WHEN q.answer = a.answer THEN 1 ELSE 0 END) AS correct_answers
,SUM( CASE WHEN q.answer = a.answer THEN 0 ELSE 1 END) AS wrong_answers
FROM questions q
JOIN answers a ON q.qid = a.qid
WHERE q.qid = <question_id>
GROUP BY a.userId
于 2011-07-06T06:26:53.847 に答える