Sdílet prostřednictvím


row_number()

Vrátí index aktuálního řádku v serializované sadě řádků.

Index řádku začíná ve výchozím nastavení 1 na prvním řádku a pro každý další řádek se navyšuje o 1 . Volitelně může index řádku začínat jinou hodnotou než 1. Index řádků se navíc může resetovat podle některých zadaných predikátů.

Syntax

row_number( [StartingIndex [,Restart]] )

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
Počáteční index long Hodnota indexu řádku, na které má začít nebo se má znovu spustit. Výchozí hodnota je 1.
Restartujte bool Určuje, kdy má být číslování restartováno na hodnotu StartingIndex . Výchozí formát je false.

Návraty

Funkce vrátí index řádku aktuálního řádku jako hodnotu typu long.

Příklady

Následující příklad vrátí tabulku se dvěma sloupci: první sloupec (a) s čísly od 10 začátku do 1a druhý sloupec (rn) s čísly 1 od do 10:

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

Následující příklad je podobný výše uvedenému, pouze druhý sloupec (rn) začíná na 7:

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

Poslední příklad ukazuje, jak lze rozdělit data a očíslovat řádky pro každý oddíl. Tady rozdělíme data podle 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)

Spuštění tohoto dotazu vytvoří následující výsledek:

Letiště Letecké společnosti Odlety Rank
MOŘE BA 2 1
MOŘE LH 1 2
MOŘE LY 0 3
TLV LY 100 1
TLV LH 1 2