用MySQL分析调查数据

时间:2011-07-19 19:31:07

标签: php mysql

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

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

问题:我如何在最后提出'SCORE'专栏?使用SQL查询或使用PHP(不知何故)?像Excel这样的MYSQL中是否存在某种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%

1 个答案:

答案 0 :(得分:1)

没有技巧。漫长的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