Mysql 查询以获取已回答调查问题的摘要(不同的列值)

Mysql 查询以获取已回答调查问题的摘要(不同的列值),mysql,sql,Mysql,Sql,我有一张调查表,每次有人完成调查时,都会在survey\u result表中创建一条记录 那张表每个问题都有一列。大多数是mutl选择,一些是自由文本 i、 e.表中的列: happy_or_sad (no. yes, sometimes) are_you_busy (no, yes, sometimes) your_suggestion 现在我想显示已提交的多选答案的摘要 问题:快乐还是悲伤? 否(40%)是(20%)有时(40%) (如果百分比太大,则至少计算一次)。我可以使用什么样的查

我有一张调查表,每次有人完成调查时,都会在
survey\u result
表中创建一条记录

那张表每个问题都有一列。大多数是mutl选择,一些是自由文本

i、 e.表中的列:

happy_or_sad (no. yes, sometimes)
are_you_busy (no, yes, sometimes)
your_suggestion 
现在我想显示已提交的多选答案的摘要

问题:快乐还是悲伤? 否(40%)是(20%)有时(40%)

(如果百分比太大,则至少计算一次)。我可以使用什么样的查询来获取此信息

试试看:

SELECT
    (SUM(happy_or_sad = 'no') / COUNT(*)) * 100 AS percentage_no,
    (SUM(happy_or_sad = 'yes') / COUNT(*)) * 100 AS percentage_yes,
    (SUM(happy_or_sad = 'sometimes') / COUNT(*)) * 100 AS percentage_sometimes,
FROM
    survey_result

我发现这很接近,但它需要知道并硬编码每个列的不同多选选项。也许我最好用PHP来完成这一切(?)谢谢,这正是我需要的。我确实有大约20多个问题,因此这将是一个漫长而缓慢的查询,但它只由管理员运行,因此服务器上的负载应该不会很大