Numeracja wierszy w SQL Server – RANK

W poprzednim poście przedstawiłem funkcję ROW_NUMBER. RANK działa analogicznie z tym, że wierszom o tej samej wartości nadawane są takie same liczby porządkowe. Rozważmy poniższe zapytanie:

select RANK() over(order BY ProductSubCategoryID),ProductSubcategoryID from Production.Product;

Wiersze o takim samym ProductSubCategoryId otrzymają równe wartości a nie kolejne liczby jak w przypadku ROW_NUMBER. Przykładowo zwrócone wiersze:

 

RANK ProductSubCategoryId
1 5
1 5
1 5
4 6
4 6
4 6

 

Warto zwrócić uwagę, że RANK nie zwraca kolejnych liczb. W przypadku gdy występuje kilka takich samych wartości, wewnętrzny licznik jest zwiększany i powstaje potem luka– na przykładzie jest to 1 a 4 (zamiast 2).

One thought on “Numeracja wierszy w SQL Server – RANK”

Leave a Reply

Your email address will not be published.