2011-07-19 7 views
0

私は簡単なアンケートのデータを得ています。私はPHP/MYSQLで働いています。MySQLでのアンケートデータの分析

基本的に、このアンケートには、それぞれY、N、およびN/Aの3つの回答を持つ20の質問があります。最後に、Y /(Y + N)という式を使って、各調査に「得点したい」とします。

質問:最終的に実際に「スコア」列が表示されますか? 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つずつ20列ありますか? – gbn

+0

他の方法 - 各調査(各人がインタビューした)は20の質問に答えます。各質問には3つの可能な回答があります:Y/N/NA。 – saltcod

答えて

1

ませんトリック。

質問ごとに1つの行が...特に質問を追加すると楽になります。 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 
+0

うわー。ありがとう。私はどのように私は '質問ごとに1行を達成するだろうか分からない。 'Person'フィールドも実際に意味があります。それぞれの人にはIDが割り当てられており、私もそれを使用しています。 IE:Person0001、Person 0002、Person 0003など。 – saltcod

+0

最初の作業を行いました。驚くばかり。ありがとうございました。 – saltcod

関連する問題