Rank() vs DenseRank()


DenseRank() i Rank() ustawiają wiersze nadając tę samą liczbę porządkową dla pozycji exe-quo / dubli.
Rank() zostawia luki w numeracji, DenseRank() nie gubi tej kolejności.

select
    p.FirstName,
    p.PersonType,
    p.LastName,
    pp.ModifiedDate,
    rank() over(order by pp.ModifiedDate desc) as Rank_Nr,
    dense_rank() over(order by pp.ModifiedDate desc) as DenseRank_Nr
from
    [Person].[Person] as p
    join [Person].[PersonPhone] as pp
        on p.BusinessEntityID = pp.BusinessEntityID
where
    p.LastName like 'Gr%' and
    p.PersonType in ('IN')

DenseRank vs Rank