Udostępnij za pośrednictwem


row_number()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Zwraca indeks bieżącego wiersza w serializowanym zestawie wierszy.

Indeks wierszy rozpoczyna się domyślnie w 1 pierwszym wierszu i jest zwiększany przez 1 każdy dodatkowy wiersz. Opcjonalnie indeks wiersza może zaczynać się od innej wartości niż 1. Ponadto indeks wierszy może zostać zresetowany zgodnie z niektórymi podanymi predykatami.

Składnia

row_number([StartingIndex [, Restart]])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
Indeks początkowy long Wartość indeksu wierszy do uruchomienia od lub ponownego uruchomienia. Domyślna wartość wynosi 1.
restart bool Wskazuje, kiedy numerowanie ma zostać uruchomione ponownie do wartości StartingIndex . Wartość domyślna to false.

Zwraca

Funkcja zwraca indeks wierszy bieżącego wiersza jako wartość typu long.

Przykłady

Poniższy przykład zwraca tabelę z dwiema kolumnami, pierwszą kolumną (a) z liczbami z dołu do 1, a drugą kolumną (rn) z liczbami z 10 1 maksymalnie do 10:

range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number()

Poniższy przykład jest podobny do powyższego. Tylko druga kolumna (rn) zaczyna się od :7

range a from 1 to 10 step 1
| sort by a desc
| extend rn=row_number(7)

W ostatnim przykładzie pokazano, jak można podzielić dane na partycje i ponumerować wiersze na każdą partycję. W tym miejscu partycjonujemy dane według :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)

Uruchomienie tego zapytania powoduje wygenerowanie następującego wyniku:

Lotnisko Linie lotnicze Wyjazdy Ranga
SEA BA 2 1
SEA LH 1 2
SEA LY 0 3
TLV LY 100 1
TLV LH 1 2