Отличие функций RANK и DENSE_RANK при работе с одинаковыми значениями заключается в том, как они обрабатывают следующий ранг. 1
RANK пропускает следующий ранг, если обнаруживается связь (идентичные значения). 1 Например, если три продукта имеют одинаковые показатели продаж, RANK присвоит каждому из них одинаковый рейтинг, но затем пропустит следующий рейтинг. 1
DENSE_RANK не пропускает никаких рангов, если между значениями есть связь. 1 То есть каждому уникальному значению присваивается отдельный ранг, а идентичные значения получают одинаковый ранг. 1
Таким образом, RANK создаёт пробелы в ранжированном списке после группы совпадающих значений, в то время как DENSE_RANK продолжает ранжирование без пропусков. 2