Delen via


arg_max() (aggregatiefunctie)

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Hiermee zoekt u een rij in de tabel waarmee de opgegeven expressie wordt gemaximaliseerd. Hiermee worden alle kolommen van de invoertabel of de opgegeven kolommen geretourneerd.

Notitie

Deze functie wordt gebruikt in combinatie met de operator summarize.

afgeschafte aliassen: argmax()

Syntaxis

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

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
ExprToMaximize- string ✔️ De expressie waarvoor de maximumwaarde wordt bepaald.
ExprToReturn- string ✔️ De expressie bepaalt welke waarden van kolommen worden geretourneerd, in de rij met de maximumwaarde voor ExprToMaximize-. Gebruik een jokerteken * om alle kolommen te retourneren.

Retourneert

Retourneert een rij in de tabel waarmee de opgegeven expressie wordt gemaximaliseerd ExprToMaximize-en de waarden van kolommen die zijn opgegeven in ExprToReturn-.

Fooi

Als u alleen de maximale waarde wilt zien, gebruikt u de functie max().

Voorbeelden

Zoek de maximale breedtegraad van een storm gebeurtenis in elke status.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

In de resultatentabel worden alleen de eerste 10 rijen weergegeven.

Staat BeginLat BeginLocation
MISSISSIPPI 34.97 BARTON
VERMONT 45 NOORD-TROJE
AMERIKAANS-SAMOA -14.2 OFU
HAWAÏ 22.2113 PRINCEVILLE
MINNESOTA 49.35 ARNESEN
RHODE ISLAND 42 WOONSOCKET
INDIANA 41.73 FREMONT
WEST VIRGINIA 40.62 CHESTER
SOUTH CAROLINA 35.18 LANDRUM
TEXAS 36.4607 DARROUZETT
... ... ...

Zoek de laatste keer dat een gebeurtenis met een directe dood in elke staat is opgetreden, met alle kolommen.

De query filtert eerst de gebeurtenissen om alleen de gebeurtenissen op te nemen waarbij ten minste één directe dood is. Vervolgens retourneert de query de hele rij met de meest recente StartTime.

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

In de resultatentabel worden alleen de eerste 10 rijen en eerste drie kolommen weergegeven.

Staat StartTime EndTime ...
GUAM 2007-01-27T11:15:00Z 2007-01-27T11:30:00Z ...
MASSACHUSETTS 2007-02-03T22:00:00Z 2007-02-04T10:00:00Z ...
AMERIKAANS-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 ...
NIEUW MEXICO 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 ...
LAKE MICHIGAN 2007-06-07T13:00:00Z 2007-06-07T13:00:00Z ...
... ... ... ...

In het volgende voorbeeld ziet u null-verwerking.

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

uitvoer

Vrucht Versie Kleur
Appel 1 Rood
Banaan Geel
Peer 2 Groen

Vergelijking met max()

De functie arg_max() verschilt van de functie max(). Met de functie arg_max() kunt u extra kolommen retourneren, samen met de maximumwaarde en max() alleen de maximumwaarde zelf retourneert.

Voorbeelden

arg_max()

Zoek de laatste keer dat een gebeurtenis met een directe dood is gebeurd, met alle kolommen in de tabel.

De query filtert eerst de gebeurtenissen om alleen de gebeurtenissen op te nemen waarbij ten minste één directe dood is. Vervolgens retourneert de query de hele rij met de meest recente (maximum) StartTime.

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

De resultatentabel retourneert alle kolommen voor de rij met de hoogste waarde in de opgegeven expressie.

StartTime EndTime EpisodeId EventId Staat EventType ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Lawine ...

max()

Vind de laatste keer dat een gebeurtenis met een directe dood is gebeurd.

De query filtert gebeurtenissen om alleen gebeurtenissen op te nemen waarbij ten minste één directe dood is en retourneert vervolgens de maximumwaarde voor StartTime.

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

De resultatentabel retourneert de maximumwaarde van StartTime, zonder dat er andere kolommen voor deze record worden geretourneerd.

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