Функція SQL Row_Number () полягає в сортуванні та присвоєнні номера замовлення рядкам даних у відповідному наборі записів. Тож він використовується для нумерації рядків, наприклад, для визначення топ-10 рядків, які мають найвищу суму замовлення, або визначення порядку кожного клієнта, який є найбільшою сумою тощо.
Якщо ви хочете сортувати набір даних та нумерувати кожен рядок, відокремлюючи їх у категорії, ми використовуємо Row_Number () з підрозділом розділення. Наприклад, сортування замовлень кожного клієнта всередині себе, де набір даних містить усі замовлення тощо.
SELECT
SalesOrderNumber,
CustomerId,
SubTotal,
ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY SubTotal DESC) rn
FROM Sales.SalesOrderHeader
Але, як я розумію, ви хочете обчислити кількість рядків, згрупованих за стовпцем. Щоб візуалізувати вимогу, якщо ви хочете бачити кількість всіх замовлень пов'язаного клієнта як окремий стовпець, окрім інформації про замовлення, ви можете використовувати функцію агрегації COUNT () за допомогою розділу розділення
Наприклад,
SELECT
SalesOrderNumber,
CustomerId,
COUNT(*) OVER (PARTITION BY CustomerId) CustomerOrderCount
FROM Sales.SalesOrderHeader