Sdílet prostřednictvím


arg_max() (agregační funkce)

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft 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 Type 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

Najděte maximální zeměpisnou šířku události bouře v jednotlivých stavech.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

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

State 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
SOUTH CAROLINA 35.18 LANDRUM
TEXAS 36.4607 DARROUZETT
... ... ...

Najděte čas poslední události s přímým úmrtím v každém stavu a zobrazte všechny sloupce.

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

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

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

State Počáteční čas EndTime ...
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

Fruit Verze Color
Apple 0 Červený
Banana Yellow
Hruška 2 Zelený

Porovnání s 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.

Příklady

arg_max()

Najděte čas poslední události s přímým úmrtím a zobrazte všechny sloupce v tabulce.

Dotaz nejprve vyfiltruje události tak, aby zahrnoval pouze ty, u kterých došlo alespoň k jednomu přímému smrti. 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 EndTime Id epizody ID události State Typ události ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Lavina ...

max()

Najděte čas poslední události s přímým úmrtím.

Dotaz filtruje události tak, aby zahrnoval pouze ty, u kterých je alespoň jedno přímé úmrtí, a pak vrátí maximální hodnotu pro 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