arg_max() (agregační funkce)

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Vyhledá řádek v tabulce, který maximalizuje zadaný výraz. Vrátí všechny sloupce vstupní tabulky nebo zadané sloupce.

Poznámka:

Tato funkce se používá ve spojení s operátorem sumarizace.

Zastaralé aliasy: argmax()

Syntaxe

arg_max ( ExprToMaximize,* | ExprToReturn [, ...])

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

Parametry

Název Typ Požadováno Popis
VýrazToMaximize string ✔️ Výraz, pro který je určena maximální hodnota.
VýrazToReturn string ✔️ Výraz určuje, které sloupce jsou vráceny hodnoty, z řádku, který má maximální hodnotu pro ExprToMaximize. K vrácení všech sloupců použijte zástupný znak *.

Návraty

Vrátí řádek v tabulce, který maximalizuje zadaný výraz ExprToMaximizea hodnoty sloupců zadaných v ExprToReturn.

Spropitné

Pokud chcete zobrazit pouze maximální hodnotu, použijte funkci max().

Příklady

Obecné příklady

Následující příklad najde maximální zeměpisnou šířku události storm v každém stavu.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

Výstup

Tabulka výsledků zobrazuje pouze prvních 10 řádků.

Stát BeginLat Počáteční poloha
MISSISSIPPI 34.97 BARTON
VERMONT 45 SEVERNÍ TROY
AMERICKÁ SAMOA -14.2 OFU
HAVAJ 22.2113 PRINCEVILLE
MINNESOTA 49.35 ARNESEN
RHODE ISLAND 42 WOONSOCKET
INDIANA 41.73 FREMONT
ZÁPADNÍ VIRGINIE 40.62 CHESTER
JIŽNÍ KAROLÍNA 35.18 LANDRUM
TEXAS 36.4607 DARROUZETT
... ... ...

Následující příklad najde čas poslední události s přímým úmrtím v každém stavu, který zobrazuje všechny sloupce.

Dotaz nejprve vyfiltruje události tak, aby zahrnoval pouze ty události, ve kterých došlo alespoň k jednomu přímému úmrtí. Potom dotaz vrátí celý řádek s nejnovějším StartTime.

StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *) by State

Výstup

Tabulka výsledků zobrazuje pouze prvních 10 řádků a prvních tři sloupce.

Stát Počáteční čas Čas ukončení ...
GUAM 2007-01-27T11:15:00Z 2007-01-27T11:30:00Z ...
MASSACHUSETTS 2007-02-03T22:00:00Z 2007-02-04T10:00:00Z ...
AMERICKÁ SAMOA 2007-02-17T13:00:00Z 2007-02-18T11:00:00Z ...
IDAHO 2007-02-17T13:00:00Z 2007-02-17T15:00:00Z ...
DELAWARE 2007-02-25T13:00:00Z 2007-02-26T01:00:00Z ...
WYOMING 2007-03-10T17:00:00Z 2007-03-10T17:00:00Z ...
NOVÉ MEXIKO 2007-03-23T18:42:00Z 2007-03-23T19:06:00Z ...
INDIANA 2007-05-15T14:14:00Z 2007-05-15T14:14:00Z ...
MONTANA 2007-05-18T14:20:00Z 2007-05-18T14:20:00Z ...
JEZERO MICHIGAN 2007-06-07T13:00:00Z 2007-06-07T13:00:00Z ...
... ... ... ...

Následující příklad ukazuje zpracování hodnoty null.

datatable(Fruit: string, Color: string, Version: int) [
    "Apple", "Red", 1,
    "Apple", "Green", int(null),
    "Banana", "Yellow", int(null),
    "Banana", "Green", int(null),
    "Pear", "Brown", 1,
    "Pear", "Green", 2,
]
| summarize arg_max(Version, *) by Fruit

Výstup

Ovoce Verze Barva
Jablko 0 Červený
Banán Žlutá
Hruška 2 Zelený

Příklady porovnání arg_max() a max()

Funkce arg_max() se liší od funkce max(). Funkce arg_max() umožňuje vrátit další sloupce spolu s maximální hodnotou a max() vrátí jenom samotnou maximální hodnotu.

Následující příklad používá arg_max() k vyhledání poslední události s přímým úmrtím v každém stavu, který zobrazuje všechny sloupce. Dotaz nejprve vyfiltruje události tak, aby zahrnoval pouze události, ve kterých došlo alespoň k jednomu přímému úmrtí. Potom dotaz vrátí celý řádek s nejnovějším (maximálním) časem StartTime.

StormEvents
| where DeathsDirect > 0
| summarize arg_max(StartTime, *)

Tabulka výsledků vrátí všechny sloupce řádku, který obsahuje nejvyšší hodnotu ve výrazu zadaném.

Počáteční čas Čas ukončení Id epizody ID události Stát Typ události ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Lavina ...

Následující příklad používá funkci max() k vyhledání poslední události s přímým úmrtím v každém stavu, ale vrátí pouze maximální hodnotu StartTime.

StormEvents
| where DeathsDirect > 0
| summarize max(StartTime)

Tabulka výsledků vrátí maximální hodnotu StartTime bez vrácení dalších sloupců pro tento záznam.

max_StartTime
2007-12-31T15:00:00Z