2012-07-05 59 views
0

我有一份調查表,每次有人完成調查時,survey_result表中會創建一條記錄。查詢以獲得已回答的調查問題摘要(不同的列值)

該表格每個問題都有一列。大多數是多種選擇,有些是自由文本。

即列在表:

happy_or_sad (no. yes, sometimes) 
are_you_busy (no, yes, sometimes) 
your_suggestion 

現在我想顯示已提交的多項選擇答案的總結。

問題:快樂還是悲傷? 否(40%)是(20%)有時(40%)

(或者如果百分比太多,至少應該計算一次)。什麼是最有效的查詢或查詢我可以用來得到這個?

+0

我發現這個http://www.randomsnippets.com/2008/10/05/how-to-count-values-with-mysql-queries/這是接近,但它需要了解和硬編碼每個列的不同的多選項。也許我更好的做法是在PHP(?) – Quadrant6

回答

1

嘗試:

SELECT 
    (SUM(happy_or_sad = 'no')/COUNT(*)) * 100 AS percentage_no, 
    (SUM(happy_or_sad = 'yes')/COUNT(*)) * 100 AS percentage_yes, 
    (SUM(happy_or_sad = 'sometimes')/COUNT(*)) * 100 AS percentage_sometimes, 
FROM 
    survey_result 
+0

中完成所有工作。謝謝你,這正是我需要的。我確實有大約20個問題,所以這將是一個漫長而緩慢的查詢,但它只能由管理員運行,所以不應該成爲服務器上的大負載 – Quadrant6