Привет,
Кто-нибудь знает разницу между опциями dense_rank / rank / row_number в стратегии ранжирования score ranking?
Привет,
Кто-нибудь знает разницу между опциями dense_rank / rank / row_number в стратегии ранжирования score ranking?
row_number() →bigint
Возвращает номер текущей строки в пределах её группы, начиная с 1.
rank() →bigint
Возвращает ранг текущей строки с пропусками; то естьrow_numberпервой строки в её группе одинаковых значений.
dense_rank() →bigint
Возвращает ранг текущей строки без пропусков; эта функция фактически подсчитывает группы одинаковых значений.
По сути, это изменяет способ обработки совпадений.
row_number совпадений нет.rank, если две строки занимают позицию 5, следующая будет иметь позицию 7, так как 6 пропускается.dense_rank, если две строки занимают позицию 5, следующая будет иметь позицию 6.