0

私はこのようなテーブルを持っています

id  name answer   question
1   john  correct 1
1   john  correct 2
1   john  correct 3
1   john  wrong   4
2   lee   wrong   1
2   lee   correct 2
2   lee   correct 3
3   ana   correct 1
3   ana   wrong   2

すべてのユニーク ユーザーのリストを取得し、何問正解して何問間違っているかを確認したいと考えています。

私はこのようなことを試しましたが、うまくいかないようです:

SELECT id, user_id, name, question_id, (select count(answer) from table where answer = 'CORRECT') as correct, (select count(answer) from table where answer= 'WRONG') as wrong FROM table GROUP BY user_id

誰かが私を正しい軌道に乗せるのを手伝ってくれますか? ありがとう

4

3 に答える 3

2

これを試して:

SELECT name, answer, COUNT(*) FROM yourtablenamehere GROUP BY name, answer
于 2012-12-04T01:06:50.337 に答える
1

条件付き合計で必要なことを行います。

select name, sum(case when answer = 'correct' then 1 else 0 end) as correct,
       sum(case when answer = 'wrong' then 1 else 0 end) as wrong
from table t
group by name
于 2012-12-04T03:26:34.543 に答える
0

MySQL の場合、次のようになります。

SELECT user_id, name,SUM(IF(answer='correct',1,0)) AS correct,SUM(IF(answer='wrong',1,0)) as wrong FROM table GROUP BY user_id
于 2012-12-10T16:17:50.940 に答える