Последнее обновление
ROW_NUMBER
Описание
ROW_NUMBER() является оконной функцией, которая присваивает каждой строке в пределах раздела уникальный порядковый номер. Нумерация начинается с 1 и продолжается без пропусков. В отличие от RANK() и DENSE_RANK(), ROW_NUMBER() присваивает разные номера даже строкам с одинаковыми значениями, обеспечивая уникальность номера каждой строки.
Синтаксис
ROW_NUMBER()
Возвращаемое значение
Возвращает порядковый номер типа BIGINT. Нумерация начинается с 1 и продолжается без пропусков. Номера уникальны в пределах каждого раздела.
Примеры
select x, y, row_number() over(partition by x order by y) as rank from int_t;
+-----+-----+------+
| x | y | rank |
| --- | --- | ---- |
| 1 | 1 | 1 |
| 1 | 2 | 2 |
| 1 | 2 | 3 |
| 2 | 1 | 1 |
| 2 | 2 | 2 |
| 2 | 3 | 3 |
| 3 | 1 | 1 |
| 3 | 1 | 2 |
| 3 | 2 | 3 |
+-----+-----+------+