我正在创建一个包含10个问题的调查。所有问题都有5个可能的答案,值为1-5。数据存储在每个用户一行的数据库中。每个问题的答案都有一栏。
要为每个问题的答案制作条形图,我目前检索特定列的值等于特定可能答案的行数:
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage1` = 1
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage1` = 2
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage1` = 3
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage1` = 4
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage1` = 5
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage2` = 1
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage2` = 2
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage2` = 3
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage2` = 4
SELECT COUNT(*) AS `records_found` FROM (`antworten`) WHERE `frage2` = 5
(...)
这会生成如下图:http://i.imgur.com/SESJ8.png
这可能非常愚蠢,并且可能有更好的方法来检索所需的数据。我只是想不起来,有人能帮帮我吗? :)谢谢。
答案 0 :(得分:4)
也许:
SELECT 1 As FrageNummer, frage1 As Frage, count(*) As Anzahl
FROM antworten
GROUP BY frage1
UNION
SELECT 2 As FrageNummer, frage2 As Frage, count(*) As Anzahl
FROM antworten
GROUP BY frage2
等等。
如果'fragen'被放入行而不是列中,那么查询当然会更容易,即有这样的数据:
id | quartalid | frage_nr | frage
---------------------------------
9 | 5 | 1 | 5
9 | 5 | 2 | 5
9 | 5 | 3 | 2
等
然后你可以像这样查询
SELECT frage_nr, frage, count(*)
FROM antworten
GROUP BY frage_nr, frage
答案 1 :(得分:0)
对于单个问题,您可以使用
select frage1, count(*) as `records_found`
from antworten
group by frage1
order by frage1
或类似的。可能有一种方法可以使用立方体和枢轴等同时完成所有问题,但我不知道。