2010-05-09 4 views
1

Я хочу сделать в среднем: проблема в 1 штуке Я вычисляю AVG каждого элемента (), но как только я хочу, чтобы среднее значение GLOBAL из средних категорий (что-то и foo) не работает (mysql выдал мне ошибку: см. синтаксис, который я использовал чуть ниже).MySQL: AVG AVG невозможно?

мне нужно сделать, потому что я хочу, чтобы отсортировать результаты по глобальной средней

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

Спасибо,

редактировать: Я хотел бы иметь среднее значение средних каждой категории редактирования 2 :

получил таблицу: сервер (...) есть таблица: answer_poll (цена, интерфейс, услуги, качество)

пользователь получил 1 сервер, и он может ответить на опрос для этого сервера 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 

Этот запрос = среднее значение для каждой категории, но я хочу, среднее из средних: р

+0

Определить: «Это не работает». Среднее значение средних значений и среднее значение всех элементов - это * не * одинаковые два числа. –

+0

да, я хочу среднее значение средних;) –

+0

Иногда временные таблицы творят чудеса. –

ответ

4

мая что ?:

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

Я попробую это как можно скорее, и я дам вам знать –

+0

+1: Правильно - вы не можете использовать агрегат на другом, вы должны ссылаться на столбца из производной таблицы/встроенного представления/подзаголовка. –

+0

спасибо, это работает;) –