php - 我将如何在 sql 查询中执行数学运算来计算百分比差异?

标签 php sql mysql math

我想参加调查(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% 说废话)。不是作业,我是EE,不是CS

最佳答案

如果事先不知道答案的数量,将问题表分成 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;

所有这一切都是计算内部查询中答案的总数,然后对于每个选择,将具有该选项的答案数除以总数。

关于php - 我将如何在 sql 查询中执行数学运算来计算百分比差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2111523/

相关文章:

php - 使用 PHP 插入自定义 Postgres 数据类型

php - Centos 6.2 - Apache 2 - PHP 5 - 空白结果执行

sql - Informix SQL 比较 Where 语句上的 DateTime 值

mysql - 有没有 JSON_TABLE 的替代方案?

php - 为什么我的 php 连接到 sql 数据库代码不起作用?

PHP & MySQL - 如何从两个表中删除用户记录

javascript - 制作Ajax Handler,需要问一些安全问题

php - is_page() 条件在 AJAX 函数内不起作用

java - 在sqlite数据库中多次插入相同的数据

sql - 如何在 PL/SQL 中编写 FOR EACH 循环?