Получение среднего значения в выражении GROUP BY - PullRequest
0 голосов
/ 17 мая 2018

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

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

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

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

Ответы [ 4 ]

0 голосов
/ 17 мая 2018

Использование AVG()

SELECT AVG(fieldtoaggregate) as average_value FROM table

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

SELECT AVG(age) as average_age, gender FROM tb_user GROUP BY gender ORDER BY gender ASC;
0 голосов
/ 17 мая 2018

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

SELECT AVG(tcount)
FROM
(
SELECT COUNT(id) as tcount 
FROM issues 
GROUP BY location_id
) sub
0 голосов
/ 17 мая 2018

Просто используйте функцию агрегирования 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 Demo

0 голосов
/ 17 мая 2018

Ваш вопрос не ясен, но, кажется, вы ищете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...