7

Есть SQL запрос:

SELECT * FROM technologies WHERE technology_category_id IN (1,2,3)

Можно ли одним запросом вывести по шесть строк для каждого id, которые внутри IN? LIMIT ограничивает общее количество результатов.

Denis Bubnov
  • 13,958
Artem
  • 81

1 Answers1

6

Можно использовать партиционирование:

select * from
(
    select *, row_number() over (partition by technology_category_id order by technology_category_id) num
    from technologies
    where technology_category_id in (1,2,3)
) tech
where num <= 6

В order by задайте нужный вам порядок сортировки, если хотите выводить определенные шесть записей.

andreycha
  • 25,167
  • 4
  • 46
  • 82