Dela via


row_number()

Returnerar den aktuella radens index i en serialiserad raduppsättning.

Radindexet börjar som standard på 1 för den första raden och ökas med 1 för varje ytterligare rad. Du kan också starta radindexet med ett annat värde än 1. Dessutom kan radindexet återställas enligt vissa angivna predikat.

Syntax

row_number( [StartingIndex [,Restart]] )

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
StartingIndex long Värdet för radindexet som ska startas vid eller startas om till. Standardvärdet är 1.
Starta bool Anger när numreringen ska startas om till värdet StartingIndex . Standardvärdet är false.

Returer

Funktionen returnerar radindexet för den aktuella raden som ett värde av typen long.

Exempel

I följande exempel returneras en tabell med två kolumner, den första kolumnen (a) med tal från 10 ned till 1och den andra kolumnen (rn) med tal från 1 upp till 10:

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

Följande exempel liknar ovanstående, endast den andra kolumnen (rn) börjar på 7:

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

Det sista exemplet visar hur man kan partitioneras data och numrera raderna per varje partition. Här partitioneras data Airportmed :

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)

När du kör den här frågan får du följande resultat:

Flygplats Flygbolag Avgångar Rangordning
HAVET BA 2 1
HAVET LH 1 2
HAVET LY 0 3
TLV LY 100 1
TLV LH 1 2