Группировка с выбором n наибольших в каждой группе

Версия 1.9 от Alexandr Fokin на 2023/09/11 02:45

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
  )

Коррелирующие подзапросы
http://www.sql-tutorial.ru/ru/book_correlated_subqueries.html

Как получить N строк для каждой группы в SQL
https://oxilor.ru/blog/kak-poluchit-n-strok-dlya-kazhdoi-gruppy-v-sql