我有一些简单的调查数据,我很乐意帮忙。我使用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%
答案 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