2010-05-09 51 views
1

我想做一个平均值:问题是我计算每个元素的AVG(工作)的1个项目,但只要我想要GLOBAL平均值的类别(东西和富)它的平均值不起作用(MySQL抛出一个错误:请参阅下面使用的语法)。MySQL:AVG的AVG不可能?

我需要做的,因为我想在全球平均

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

感谢排序结果,

编辑:我想有每个类别 编辑的平均值的平均2 :

得到表:服务器(...) 得到表:answer_poll(价格,接口,服务质量)

用户有一台服务器,他可以回答一项民意调查此服务器severall次

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 

这个请求=平均每个类别,但我想平均值的平均值:P

+0

定义“它不起作用”。平均值和所有项目的平均值不是相同的两个数字。 – 2010-05-09 16:39:21

+0

是啊,我想要平均数的平均值;) – 2010-05-09 16:41:32

+0

有时临时表会创造奇迹。 – 2010-05-09 17:37:10

回答

4

五月是:

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

我会尽快尝试,我会让你知道 – 2010-05-09 22:00:17

+0

+1:正确 - 你不能在另一个使用聚合,你必须参考来自派生表/内联视图/子选择的列。 – 2010-05-09 22:02:35

+0

谢谢,它的工作原理;) – 2010-05-10 07:50:54