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.

Parameterwaarden

Naam Typologie 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

Algemene voorbeelden

In het volgende voorbeeld wordt de maximale breedtegraad van een storm-gebeurtenis in elke status gevonden.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

uitvoer

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
... ... ...

In het volgende voorbeeld wordt de laatste keer gevonden dat een gebeurtenis met een directe dood in elke staat is opgetreden, waarbij alle kolommen worden weergegeven.

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

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

uitvoer

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

Staat Begintijd Eindtijd ...
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

Voorbeelden van het vergelijken van arg_max() en max()

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

In het volgende voorbeeld wordt arg_max() gebruikt om de laatste keer te vinden dat een gebeurtenis met een directe dood in elke staat is opgetreden, waarbij alle kolommen worden weergegeven. De query filtert eerst de gebeurtenissen zodat alleen gebeurtenissen worden opgenomen 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.

Begintijd Eindtijd EpisodeId EventId Staat Type van evenement ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Lawine ...

In het volgende voorbeeld wordt de functie max() gebruikt om de laatste keer te vinden dat een gebeurtenis met een directe dood in elke staat is opgetreden, maar alleen de maximumwaarde van StartTime retourneert.

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