[英]Mysql Average of Sum of multiple columns
我有一個要構建的mysql查詢,這給我帶來了一些麻煩。 我完成了一系列查詢,從而完成了所需的工作,但是我知道必須有更好的方法。
我有一個調查答案表,其中有5列,用於回答5個問題。 問題總是從1(最低)到5(最高)。
我需要找到所有5個答案的平均值,並顯示為100%中的百分比。
首先,我是通過以下方式完成此任務的:
Select qone,qtwo,qthree,qfour,qfive FROM survey_answers WHERE survey_id='$survey_id'
然后,當我遍歷所有答案時:
$counter++;
$survey_total = $survey_total+(($qone+$qtwo+$qthree+$qfour+$qfive)/25);
最后,遍歷所有調查結果之后:
$total_average = $survey_total/$counter;
所以這就是我解決需要做的事情。
誰能幫我完善這個查詢,甚至可以將它簡化成一個?
是否可以做類似的事情:
Select AVG(SUM(qone+qtwo+qthree+qfour+qfive)/25)) FROM survey_answers WHERE survey_id='$survey_id'
上面的查詢不起作用,我知道sum對該列名稱的所有行進行計數。 是否存在MySQL語法來添加同一條目的多個列? 另外,如果有,我可以將該總和除以我選擇的數字,然后將這些結果平均一次查詢?
謝謝。 賈森
嘗試類似的方法,應該可以在%中找到您想要的結果
SELECT
20 * q1 / devider AS Question1,
20 * q2 / devider AS Question2,
20 * q3 / devider AS Question3,
20 * q4 / devider AS Question4,
20 * q5 / devider AS Question5
FROM (
SELECT (
SELECT COUNT( survey_id )
FROM (
SELECT survey_id
FROM `survey_answers`
WHERE `survey_id` ='$survey_id'
)tt1
) AS devider, SUM(`qone') AS q1, SUM(`qtwo`) as q2, SUM(`qthree`) as q3, SUM(`qfour`) as q4, SUM(`qfive`) AS q5
FROM `survey_answers`
WHERE `survey_id` ='$survey_id'
GROUP BY `survey_id`
)tt2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.