@alexanderqwert

Как получить статьи из базы максимально захватив разные категории?

Имеется таблица со статьями articles которые принадлежат разным категория по category_id

Нужно вернуть определенное количество статей (скажем 10), что бы захватить при этом как можно большой категорий которым они принадлежат например

если у меня 5 категорий значит мне вернутся по 2 статьи из каждой категории 5*2=10

если будет 10 категорий то мне вернется по одной статьи из каждой категории

если будет 2 категории то вернется по 5 статей из каждой

как это сделать?

UPD:
если 10 категорий и 5 статей, то вернется первые 5 категорий по 1 статье

UPD2:

таблица articles:
id, category_id, title, body
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
Kwisatz
@Kwisatz
Больше web-приложений, хороших и разных
Не думал над отпимальностью, но держите

select id,
       category_id,
       title,
       row_number() over(partition by category_id) as rownum
from articles
order by rownum
limit 10;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы