MySQL : AVG of AVG impossible?

妖精的绣舞 提交于 2020-02-25 06:43:43

问题


I want to do an average : the problem is for 1 item i'm calculating the AVG of each elements (working) but as soon as i want the GLOBAL average of the averages of the categories (something and foo) it doesn't work (mysql throw me an error : see the syntax i used just below).

I need to do that because i want to sort the result by the global average

SELECT AVG(AVG(category1)+AVG(category2)) /2 as moy
..... 
ORDER BY moy DESC

Thanks,

edit : I would like to have the average of averages of each category edit 2 :

got table : server (...) got table : answer_poll (price, interface, services, quality)

a user's got 1 server, and he can answer to a poll for this server severall times

 SELECT s.name , s.type , COUNT(s.GSP_nom) as nb_votes, 
 TRUNCATE(AVG(quality), 2) as quality,  TRUNCATE(AVG(price), 2)  as price,    
 TRUNCATE(AVG(interface), 2)  as interface,  TRUNCATE(AVG(services), 2)  as services
  FROM answer_poll AS v
  INNER JOIN server AS s ON v.idServ = s.idServ
  GROUP BY s.name
ORDER BY global average :d

This request = the average for each category, but i want the average of the averages :p


回答1:


May be that?:

SELECT AVG(avg_) as superavg
FROM (
    SELECT category, AVG(val) as avg_
    FROM foo_table
    GROUP BY category
) as avgs;


来源:https://stackoverflow.com/questions/2798355/mysql-avg-of-avg-impossible

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!