DENSE_RANK 会返回无间隔的秩值。
绑定行的值仍旧相等,但行的秩表示在排序列中具有相等值的行的集群位置,而不是各个行的位置。正如在 RANK 示例中,行排序列值是 10、20、20、20、30,第一行的秩仍旧是 1,而第二行的秩仍旧是 2,第三行和第四行的秩也是相同的。但是,最后一行的秩是 3 而不是 5。
DENSE_RANK 也是通过语法转换计算的。
DENSE_RANK() OVER ws等效于:
COUNT ( DISTINCT ROW ( expr_1, . . ., expr_n ) )
OVER ( ws RANGE UNBOUNDED PRECEDING )
在上面的示例中,