Я пытаюсь получить среднее число чисел в запросе, который использует как GROUP BY, так и ORDER BY, но я не знаю, как это сделать.
Это мой запрос:
SELECT COUNT(id) as tcount
FROM issues
GROUP BY location_id
ORDER BY tcount DESC
Как мне получить здесь среднее?
Использовать 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;
Я думаю, вы хотите:
SELECT AVG(tcount)
FROM
(
SELECT COUNT(id) as tcount
FROM issues
GROUP BY location_id
) sub
Просто используйте функцию агрегации 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;
Вы сомневаетесь, но, похоже, вы ищете 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
id
не имеет смысла для меня, как иlocation_id
. Я бы не усреднял это ...