Группировка с выбором n наибольших в каждой группе
Версия 1.8 от Alexandr Fokin на 2023/02/02 13:16
DECLARE @n int = 3
SELECT *
FROM ShopOrder so1
WHERE
so1.OrderId in
(
SELECT top(@n) OrderId
FROM ShopOrder so2
WHERE so2.ClientId = so1.ClientId
ORDER BY so2.OrderBy
)
SELECT *
FROM ShopOrder so1
WHERE
so1.OrderId in
(
SELECT top(@n) OrderId
FROM ShopOrder so2
WHERE so2.ClientId = so1.ClientId
ORDER BY so2.OrderBy
)
Коррелирующие подзапросы
http://www.sql-tutorial.ru/ru/book_correlated_subqueries.html