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