1

我有一个包含问题编号和响应数据的数据表。

我需要能够获得每个问题的每个选项的响应计数,以及代表的百分比。

例如数据可能看起来像

questionNum   ResponseNum
1             1
1             2
1             2
1             2
1             3
2             1
2             1
2             2

....然后这应该给出查询的结果

questionNum     responseNum   count   percent
1               1             1       20
1               2             3       60
1               3             1       20
2               1             2       66
2               2             1       33

我可以进行查询以获取每个响应的计数,但看不到获取百分比的方法。

有人可以帮忙吗?

非常感谢

4

1 回答 1

4
SELECT a.questionNum, a.responseNum,
        COUNT(*) `count`,
        (COUNT(*) / b.totalCOunt) * 100 Percentage
FROM   table1 a
       INNER JOIN 
        (
          SELECT questionNum, COUNT(*) totalCOunt
          FROM table1
          GROUP BY questionNum
        ) b ON a.questionNUm = b.questionNum
GROUP BY questionNum, responseNum

您还可以添加附加功能FLOOR

SELECT a.questionNum, a.responseNum,
        COUNT(*) `count`,
        FLOOR((COUNT(*) / b.totalCOunt) * 100) Percentage
FROM   table1 a
       INNER JOIN 
        (
          SELECT questionNum, COUNT(*) totalCOunt
          FROM table1
          GROUP BY questionNum
        ) b ON a.questionNUm = b.questionNum
GROUP BY questionNum, responseNum
于 2012-11-22T13:38:02.380 回答