Разница между функциями RANK и DENSE_RANK заключается в способе присвоения рангов записям в упорядоченном наборе данных. 2
RANK создаёт «пробелы» в ранжированном списке после группы совпадающих значений, тогда как DENSE_RANK продолжает ранжирование без пропусков. 2
RANK подходит, когда нужно отразить истинное положение, включая совпадающие значения и пробелы. 3 DENSE_RANK используется, когда важно назначить ранги без пропусков, например, для расчёта процентилей или определения топ-N элементов без пропуска рангов. 3
Также при использовании RANK количество уникальных рангов будет меньше или равно количеству строк, а при использовании DENSE_RANK — может быть значительно меньше, если совпадений много. 3