1

次の構造を持つ「アンケート」というテーブルがあります。

ユーザー ID | Q01 | Q02 | Q03 |
00001 | はい | はい | はい |
00002 | はい | いいえ | はい |
00003 | はい | いいえ | いいえ |

各ユーザー(user_id)の「はい」の数を数える方法を考えています。例えば:

00001 - 3
00002 - 2
00003 - 1

UserID なしで結果を表示したいだけです。

この前に、「はい」と「いいえ」を「1」と「0」として保存したため、次を使用できます。

SELECT CONCAT(Q01+Q02+Q03) FROM `#__table` WHERE `id` = '[user_id]'

整数ではなくなったため、正しいクエリが見つからないようです..

4

3 に答える 3

0
SELECT sum(yes)
FROM (
        (SELECT count(*) yes
         FROM #__TABLE
         WHERE Q01='yes'
           OR Q02='yes'
           OR Q03='yes'
           AND user_id=00001)
      UNION ALL
        (SELECT count(*) yes
         FROM #__TABLE
         WHERE Q01='yes'
           OR Q02='yes'
           OR Q03='yes'
           AND user_id=00002)
      UNION ALL
        (SELECT count(*) yes
         FROM #__TABLE
         WHERE Q01='yes'
           OR Q02='yes'
           OR Q03='yes'
           AND user_id=00003)) AS tt;

これはうまくいくと思います。

于 2013-10-24T04:18:19.690 に答える
0
SELECT if(Q01 = 'Yes',1,0) + if(Q02 = 'Yes',1,0) + if(Q03 = 'Yes',1,0)
FROM #__table 
WHERE id = '[user_id]'
于 2013-10-24T04:15:25.190 に答える