簡體   English   中英

MySQL多列求和的平均值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM