row_number()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Возвращает индекс текущей строки в сериализованном наборе строк.
Индекс строки начинается по умолчанию 1
для первой строки и увеличивается 1
для каждой дополнительной строки.
При необходимости индекс строки может начинаться с другого значения 1
.
Кроме того, индекс строки может быть сброшен в соответствии с указанным предикатом.
Синтаксис
row_number(
[StartingIndex [,
Перезапуск]])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
ЗапускIndex | long |
Значение индекса строки для запуска или перезапуска. Значение по умолчанию равно 1. | |
restart | bool |
Указывает, когда нумерация должна быть перезапущена в значение StartingIndex . Значение по умолчанию — false . |
Возвраты
Функция возвращает индекс строки текущей строки в качестве значения типа long
.
Примеры
В следующем примере возвращается таблица с двумя столбцами, первым столбцом () с числами вниз до, а второй столбец (a
rn
) с числами от 1
до10
:10
1
range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number()
Следующий пример аналогичен приведенному выше, только второй столбец (rn
) начинается с 7
:
range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number(7)
В последнем примере показано, как можно секционирование данных и число строк для каждой секции. Здесь мы секционируем данные по Airport
:
datatable (Airport:string, Airline:string, Departures:long)
[
"TLV", "LH", 1,
"TLV", "LY", 100,
"SEA", "LH", 1,
"SEA", "BA", 2,
"SEA", "LY", 0
]
| sort by Airport asc, Departures desc
| extend Rank=row_number(1, prev(Airport) != Airport)
Выполнение этого запроса приводит к следующему результату:
Аэропорт | Airline | Вылет | Rank |
---|---|---|---|
SEA | BA | 2 | 1 |
SEA | ЛЕВАЯ | 1 | 2 |
SEA | LY | 0 | 3 |
TLV | LY | 100 | 1 |
TLV | ЛЕВАЯ | 1 | 2 |