Страницы

Поиск по вопросам

вторник, 13 ноября 2018 г.

Посчитать статистику

Есть таблицы articles(id, section_id) и sections(id) связанные соответственно связью один ко многим (одна секция имеет много статей). Я хочу узнать сколько минимально, в среднем и максимально статей во всех секциях. Не доводилось делать таких агрегирующих запросов с MIN, MAX, AVG... Помогите пожалуйста составить запрос!


Ответ

В первую очередь придётся посчитать статьи:
SELECT COUNT(a.id) FROM Articles a GROUP BY a.section_id
Из этого можно получить агрегаты:
SELECT min(agg.cnt) mincnt, max(agg.cnt) maxcnt, avg(agg.cnt) avgcnt FROM ( SELECT COUNT(a.id) cnt FROM Articles a GROUP BY a.section_id ) agg

Комментариев нет:

Отправить комментарий