row_number()
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 |