SQL Row_Number () işlevi , ilgili kayıt kümesindeki veri satırlarına sıralamak ve bir sipariş numarası atamaktır. Dolayısıyla, satırları numaralandırmak için kullanılır, örneğin en yüksek sipariş miktarına sahip ilk 10 satırı veya her müşterinin en yüksek tutar olan sırasını tanımlamak vb.
Veri kümesini ve numarayı her bir satırı kategorilere ayırarak sıralamak isterseniz, Partition By yan tümcesiyle Row_Number () öğesini kullanırız. Örneğin, veri kümesinin tüm siparişleri içerdiği her bir müşterinin siparişlerini sıralama.
SELECT
SalesOrderNumber,
CustomerId,
SubTotal,
ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY SubTotal DESC) rn
FROM Sales.SalesOrderHeader
Ancak anladığım kadarıyla, bir sütuna göre gruplandırılmış satır sayısını hesaplamak istiyorsunuz. Gereksinimi görselleştirmek için, ilgili müşterinin tüm siparişlerinin sipariş bilgilerinin yanı sıra ayrı bir sütun olarak sayılmasını istiyorsanız, Partition By deyimiyle COUNT () toplama işlevini kullanabilirsiniz
Örneğin,
SELECT
SalesOrderNumber,
CustomerId,
COUNT(*) OVER (PARTITION BY CustomerId) CustomerOrderCount
FROM Sales.SalesOrderHeader