Поделиться через


row_number()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Возвращает индекс текущей строки в сериализованном наборе строк.

Индекс строки начинается по умолчанию 1 для первой строки и увеличивается 1 для каждой дополнительной строки. При необходимости индекс строки может начинаться с другого значения 1. Кроме того, индекс строки может быть сброшен в соответствии с указанным предикатом.

Синтаксис

row_number([StartingIndex [, Перезапуск]])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
ЗапускIndex long Значение индекса строки для запуска или перезапуска. Значение по умолчанию равно 1.
restart bool Указывает, когда нумерация должна быть перезапущена в значение StartingIndex . Значение по умолчанию — false.

Возвраты

Функция возвращает индекс строки текущей строки в качестве значения типа long.

Примеры

В следующем примере возвращается таблица с двумя столбцами, первым столбцом () с числами вниз до, а второй столбец (arn) с числами от 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