php - 使用 MySQL 分析调查数据

标签 php mysql

我有一些简单的调查数据,我很想帮忙。我使用 PHP/MYSQL。

基本上,该调查有 20 个问题,每个问题有 3 个可能的答案:Y、N 和 N/A。我想在最后使用公式对每项调查进行“评分”:Y/(Y+N)。

问题:我如何在最后得出“SCORE”列?使用 SQL 查询还是使用 PHP(以某种方式)? MYSQL 中是否有像 Excel 那样的 COUNTIF 函数?

像这样的查询:COUNTIF("Y", Column1:Column20) 会很棒——如果它存在的话!

感谢建议! (我想我正在寻找与这个问题一样多的程序建议和技术建议)。

谢谢

特里

            Q1   Q2  Q3  Q4  Q5  SCORE
            ---------------------            
Person1 -   y    n   y    n   n/a  50%
Person2 -   y    y   y    y   y    100% 
Person3 -   y    y   y    y   n/a  100%

最佳答案

没有技巧。冗长的 SUM(CASE ...)

每个问题一行会更容易......尤其是当您添加更多问题时。请参阅First Normal Form

SELECT
   SUM(
     CASE WHEN Q1 = 'y' THEN 1 ELSE 0 END +
     CASE WHEN Q2 = 'y' THEN 1 ELSE 0 END +
     ...
     CASE WHEN Q20 = 'y' THEN 1 ELSE 0 END
     )
   /
   SUM(
     CASE WHEN Q1 IN ('y', 'n') THEN 1 ELSE 0 END +
     CASE WHEN Q2 IN ('y', 'n') THEN 1 ELSE 0 END +
     ...
     CASE WHEN Q20 IN ('y', 'n') THEN 1 ELSE 0 END
     ),
   Person
FROM
   myTable
GROUP BY
   Person

关于php - 使用 MySQL 分析调查数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6752985/

相关文章:

php - PHP/MySQL 下拉搜索中的可选变量

php - 在 laravel/dingo API 上使用 Transformer

php - 将对象数组从 jquery 传递到 php 并保存到数据库

php - 创建表时出错 : Key column doesn't exist

php - Magento 重新索引 + 目录页面问题

php - 如何删除多个 UTF-8 BOM 序列

php - 如何在 PHP 中改进以下代码

MySQL 按 IN 子句中值的相同顺序排序

php - 无法在 php Mysql 中使用 mysqli_result 类型的对象作为数组

java.sql.BatchUpdateException : Field 'myFK' doesn't have a default value