Condividi tramite


arg_max() (funzione di aggregazione)

Si applica a: ✅Microsoft Fabric

Trova una riga nella tabella che ottimizza l'espressione specificata. Restituisce tutte le colonne della tabella di input o delle colonne specificate.

Nota

Questa funzione viene usata insieme all'operatore summarize.

Alias deprecati: argmax()

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
ExprToMaximize string ✔️ Espressione per cui viene determinato il valore massimo.
ExprToReturn string ✔️ L'espressione determina i valori delle colonne restituite, dalla riga con il valore massimo per ExprToMaximize. Utilizzare un * con caratteri jolly per restituire tutte le colonne.

Valori restituiti

Restituisce una riga nella tabella che ottimizza l'espressione specificata ExprToMaximizee i valori delle colonne specificate in ExprToReturn.

Mancia

Per visualizzare solo il valore massimo, usare la funzione max().

Esempi

Trovare la latitudine massima di un evento storm in ogni stato.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

Nella tabella dei risultati vengono visualizzate solo le prime 10 righe.

Provincia BeginLat BeginLocation
MISSISSIPPI 34.97 BARTON
VERMONT 45 TROY NORD
SAMOA AMERICANE -14.2 OFU
HAWAII 22.2113 PRINCEVILLE
MINNESOTA 49.35 ARNESEN
RHODE ISLAND 42 WOONSOCKET
INDIANA 41.73 FREMONT
VIRGINIA OCCIDENTALE 40.62 CHESTER
SOUTH CAROLINA 35.18 LANDRUM
TEXAS 36.4607 DARROUZETT
... ... ...

Trovare l'ultima volta che si è verificato un evento con un decesso diretto in ogni stato, mostrando tutte le colonne.

La query filtra prima gli eventi in modo da includere solo quelli in cui si è verificato almeno un decesso diretto. La query restituisce quindi l'intera riga con il valore StartTime più recente.

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

Nella tabella dei risultati vengono visualizzate solo le prime 10 righe e le prime 3 colonne.

Provincia StartTime EndTime ...
GUAM 2007-01-27T11:15:00Z 2007-01-27T11:30:00Z ...
MASSACHUSETTS 2007-02-03T22:00:00Z 2007-02-04T10:00:00Z ...
SAMOA AMERICANE 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 ...
NEW 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 ...
LAGO MICHIGAN 2007-06-07T13:00:00Z 2007-06-07T13:00:00Z ...
... ... ... ...

Nell'esempio seguente viene illustrata la gestione dei valori 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

Output

Frutta Versione Color
Apple 1 Rosso
Banana Giallo
Pera 2 Verde

Confronto con max()

La funzione arg_max() è diversa dalla funzione max(). La funzione arg_max() consente di restituire colonne aggiuntive insieme al valore massimo e max() restituisce solo il valore massimo stesso.

Esempi

arg_max()

Trovare l'ultima volta che si è verificato un evento con un decesso diretto, visualizzando tutte le colonne della tabella.

La query filtra prima gli eventi in modo da includere solo quelli in cui si è verificato almeno un decesso diretto. La query restituisce quindi l'intera riga con il valore StartTime più recente (massimo).

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

La tabella dei risultati restituisce tutte le colonne per la riga contenente il valore più alto nell'espressione specificata.

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

max()

Trovare l'ultima volta che si è verificato un evento con una morte diretta.

La query filtra gli eventi in modo da includere solo quelli in cui è presente almeno una morte diretta e quindi restituisce il valore massimo per StartTime.

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

La tabella dei risultati restituisce il valore massimo di StartTime, senza restituire altre colonne per questo record.

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