Есть таблицы 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
Комментариев нет:
Отправить комментарий