Есть SQL запрос:
SELECT * FROM technologies WHERE technology_category_id IN (1,2,3)
Можно ли одним запросом вывести по шесть строк для каждого id, которые внутри IN? LIMIT ограничивает общее количество результатов.
Ответ
Можно использовать партиционирование
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 задайте нужный вам порядок сортировки, если хотите выводить определенные шесть записей.
Комментариев нет:
Отправить комментарий