Разница между функциями ROW_NUMBER и RANK в SQL заключается в том, что они возвращают разные значения для строк:
- ROW_NUMBER возвращает номер строки. 2 Она присваивает уникальные возрастающие значения каждой строке, не обращая внимания на повторение значений выражения сортировки. 4
- RANK возвращает ранг каждой строки. 2 Если у нескольких строк одинаковые значения в столбцах сортировки, они получают одинаковый ранг. 2 Например, если две строки занимают второе место, обе получают ранг 2. 2 После группы строк с одинаковым рангом следующий ранг увеличивается на количество строк в этой группе. 2
Таким образом, ROW_NUMBER пронумеровывает весь набор строк, возвращаемых запросом, а RANK присваивает одинаковые значения строкам с одинаковым значением выражения сортировки. 45