Разница между функциями DENSE_RANK и RANK в SQL заключается в способе присвоения рангов записям в упорядоченном наборе данных. 2
RANK создаёт «пробелы» в ранжированном списке после группы совпадающих значений. 2 Для неодинаковых результатов сохраняются уникальные ранги. 2
DENSE_RANK продолжает ранжирование без пропусков. 2 Одинаковые результаты ведут к получению одинаковых рангов. 2
Таким образом, RANK подходит, когда нужно отразить истинное положение, включая совпадения и пробелы, а DENSE_RANK — когда важно назначить ранги без пропусков. 5
Ещё одно отличие заключается в том, что RANK подсчитывает повторяющиеся строки, даже если она присваивает одно и то же значение повторяющейся строке, тогда как DENSE_RANK не учитывает повторяющиеся строки. 4