小编典典

如何在sql查询中执行数学运算以计算百分比差异?

sql

我想进行调查(2个或更多选择),并将结果放在表格中。我只想知道如何计算sql查询中的结果。

甚至更多,我应该在查询中进行数学运算,还是仅使用PHP进行数学运算?

例子

问题表

question_id (int)
question (text)
answer_1 (varchar)
answer_2 (varchar)
answer_3 (varchar)
etc...

答案表

answer_id (int)
question_id (int)
answer (int) The answer they chose. (1, 2, 3, etc.)

我将/应该如何计算结果?

编辑: 使用MySQL,PHP。答案之间的差异(45%表示不满意,50%表示不满意等等,5%表示不满意)。不是做作业,是Im EE,不是CS


阅读 244

收藏
2021-05-30

共1个答案

小编典典

如果事先不知道答案的数量,则将问题表分为2个会更简单-
一个用于问题(question_id,question_text),一个用于选择(question_id,choice_id,choice_text)。答案表可以做成(question_id,answer_id,choice_id)。然后使用以下类似方法选择它(QID
=您选择的问题的ID):

SELECT choice,
       (COUNT(*) / (SELECT COUNT(*)
                    FROM answers
                    WHERE answers.question_id = QID)) * 100 AS percentage
FROM choices
     INNER JOIN answers
       ON choices.choice_id = answers.choice_id
       AND choices.question_id AND choices.question_id
WHERE choices.question_id = QID
GROUP BY choice_id;

所有这些操作就是计算内部查询中答案的总数,然后针对每个选择,将具有该选择的答案的数量除以总数。

2021-05-30