Получение среднего значения в выражении GROUP BY

0

Я пытаюсь получить среднее число чисел в запросе, который использует как GROUP BY, так и ORDER BY, но я не знаю, как это сделать.

Это мой запрос:

SELECT COUNT(id) as tcount 
FROM issues 
GROUP BY location_id 
ORDER BY tcount DESC

Как мне получить здесь среднее?

  • 0
    Разве в MySQL нет функции avg ()?
  • 0
    Среднее что? id не имеет смысла для меня, как и location_id . Я бы не усреднял это ...
Теги:

4 ответа

1

Использовать AVG()

SELECT AVG(fieldtoaggregate) as average_value FROM table

Если вы хотите, чтобы среднее значение группировалось по полю, вы можете использовать группу. Представьте, что вы хотите, чтобы возраст avegare был сгруппирован по полу:

SELECT AVG(age) as average_age, gender FROM tb_user GROUP BY gender ORDER BY gender ASC;
0

Я думаю, вы хотите:

SELECT AVG(tcount)
FROM
(
SELECT COUNT(id) as tcount 
FROM issues 
GROUP BY location_id
) sub
0

Просто используйте функцию агрегации AVG:

SELECT location_id, AVG(id) as tavg 
  FROM issues 
 GROUP BY location_id 
 ORDER BY 1 DESC;

Будет более значимым удаление GROUP BY и ORDER BY:

SELECT AVG(id) as tavg 
  FROM issues;

Демо-версия SQL Fiddle

0

Вы сомневаетесь, но, похоже, вы ищете AVG()

SELECT COUNT(id) as tcount , avg(id) 
FROM issues 
GROUP BY location_id 
ORDER BY tcount DESC

или вообще

SELECT COUNT(id) as tcount , avg(your_column) 
FROM issues 
GROUP BY location_id 
ORDER BY tcount DESC

Ещё вопросы

Сообщество Overcoder
Наверх
Меню