2015-01-05 3 views
1

Как вы могли бы выработать среднее количество столбцов и строк?SQL Средние множественные столбцы

Мой код до сих пор:

SELECT b.id, r.id, b.name, r.business_id, (r.service + r.value + r.quality)/3 AS average 
         FROM business b 
         LEFT JOIN rating r ON r.business_id = b.id 

enter image description here

Я хотел бы получить среднее r.service, r.value и r.quality и объединить столбец business_id.

Так что я должен получить: business_id = средний: 9,42 (к примеру)

+0

Я предлагаю смотреть в [ Агрегированные функции] (http://msdn.microsoft.com/en-us/library/ms173454.aspx) – imtheman

+0

, поэтому в примере, который вы указали, вы хотите иметь среднее значение для business_id (так что больной заканчивается только одним столбцом для business_id 1 со средним значением 8.83335) – Argod

+0

Откуда: 9.42? –

ответ

3

Совокупная функция AVG должна принимать выражение для агрегации, так что это должно работать:

SELECT b.name, r.business_id, AVG((r.service + r.value + r.quality)/3) 
FROM business b 
    LEFT JOIN rating r ON r.business_id = b.id 
GROUP BY b.name, r.business_id 
LIMIT 0,30 
+0

Выглядит, надеюсь, но я получаю следующее: # 1241 - Операнд должен содержать 1 столбец (s) – potts

+0

Можете ли вы попробовать сейчас - я отредактировал его так, чтобы запятые были заменены знаками + в 'AVG()' (я уверен, что это то, что имел в виду первоначальный ответчик). –

+0

Ах! Прекрасно работает! Я добавил среднее значение AS в конце AVG, поэтому я могу заказать средний показатель. Спасибо @DavidFaber! – potts