我正在进行市场调查,所有调查数据都保存在数据库中。我需要一个查询来计算为问题“1”选择选项“1”的行数,为问题“1”选择选项“2”,依此类推所有问题和选项......我需要在这里指定几个条件,我必须匹配3个表的不同ID,并显示每个特定ID的结果。
答案 0 :(得分:1)
查询的基础是这样的:
SELECT q.question, a.answer, COUNT(a.answer)
FROM questions q
LEFT JOIN answers a ON (q.id = a.question_id)
GROUP BY q.id, a.id
ORDER BY q.id, a.id
您可以在WHERE
子句中添加必要条件。
答案 1 :(得分:1)
假设表
survey (question, answer)
你可以简单地做
select
question, answer, count(*) as numberOrResponses
from
survey
group by
question, answer
order by
question, answer
将为您提供如下结果:
'question 1', 'answer 1', 10
'question 1', 'answer 2', 2
... etc
当然,如果你的表被规范化,只需使用from部分中的正确连接
答案 2 :(得分:0)
我认为你将不得不这么做:
SELECT COUNT(`keyfield`)
WHERE `column` = '1'
和
SELECT COUNT(`keyfield`)
WHERE `column` = '2'
否则,您需要一个脚本来运行数据/选项的所有迭代。你在什么平台上?
答案 3 :(得分:0)
SELECT
question,
sum(CASE (answer1) WHEN "true" THEN 1 WHEN "false" THEN 0 END) as answer1,
sum(CASE (answer2) WHEN "true" THEN 1 WHEN "false" THEN 0 END) as answer2
FROM
survey
group by
question
我希望这就是你想要的!