1

我有一个名为“问卷”的表格,其结构如下:

用户 ID | Q01 | Q02 | Q03 |
00001 | 是 | 是 | 是 |
00002 | 是 | 没有 | 是 |
00003 | 是 | 没有 | 没有 |

我正在弄清楚如何计算每个用户(user_id)的“是”数量。例如:

00001 - 3
00002 - 2
00003 - 1

我只想显示没有用户 ID 的结果..

在此之前,我将是和否存储为“1”和“0”,因此我可以使用以下内容:

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

我似乎找不到正确的查询,因为它不再是整数..

4

3 回答 3

1
SELECT (Q01 = 'Yes') + (Q02 = 'Yes') + (Q03 = 'Yes')
FROM #__table 
WHERE id = '[user_id]'
于 2013-10-24T03:58:28.130 回答
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 回答