Функция SQL Row_Number () предназначена для сортировки и назначения номера заказа для строк данных в связанном наборе записей. Таким образом, он используется для нумерации строк, например, для определения первых 10 строк, которые имеют наибольшую сумму заказа, или для идентификации заказа каждого клиента, который является наибольшей суммой, и т. Д.
Если вы хотите отсортировать набор данных и пронумеровать каждую строку, разделив их на категории, мы используем Row_Number () с предложением Partition By. Например, сортировка заказов каждого клиента внутри себя, где набор данных содержит все заказы и т. Д.
SELECT
SalesOrderNumber,
CustomerId,
SubTotal,
ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY SubTotal DESC) rn
FROM Sales.SalesOrderHeader
Но, как я понимаю, вы хотите рассчитать количество строк, сгруппированных по столбцу. Чтобы визуализировать требование, если вы хотите видеть количество всех заказов связанного клиента в виде отдельного столбца, кроме информации о заказе, вы можете использовать функцию агрегирования COUNT () с предложением Partition By
Например,
SELECT
SalesOrderNumber,
CustomerId,
COUNT(*) OVER (PARTITION BY CustomerId) CustomerOrderCount
FROM Sales.SalesOrderHeader