Udostępnij za pośrednictwem


arg_max() (funkcja agregacji)

Dotyczy: ✅Microsoft Fabric

Znajduje wiersz w tabeli, który maksymalizuje określone wyrażenie. Zwraca wszystkie kolumny tabeli wejściowej lub określonych kolumn.

Uwaga

Ta funkcja jest używana w połączeniu z operatorem podsumowania.

Przestarzałe aliasy: argmax()

Składnia

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

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
ExprToMaximize string ✔️ Wyrażenie, dla którego jest określana wartość maksymalna.
ExprToReturn string ✔️ Wyrażenie określa, które wartości kolumn są zwracane, z wiersza, który ma maksymalną wartość dla ExprToMaximize. Użyj symbolu wieloznakowego *, aby zwrócić wszystkie kolumny.

Zwraca

Zwraca wiersz w tabeli, który maksymalizuje określone wyrażenie ExprToMaximizei wartości kolumn określonych w ExprToReturn.

Napiwek

Aby wyświetlić tylko maksymalną wartość, użyj funkcji max().

Przykłady

Znajdź maksymalną szerokość geograficzną

Poniższy przykład znajduje maksymalną szerokość geograficzną zdarzenia burzy w każdym stanie.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

Wyjście

W tabeli wyników są wyświetlane tylko pierwsze 10 wierszy.

Stan BeginLat BeginLocation
MISSISSIPPI 34.97 BARTON
VERMONT 45 NORTH TROY
SAMOA AMERYKAŃSKIE -14.2 OFU
HAWAJE 22.2113 PRINCEVILLE
MINNESOTA 49.35 ARNESEN
RHODE ISLAND 42 WOONSOCKET
INDIANA 41.73 FREMONT
WIRGINIA ZACHODNIA 40.62 CHESTER
SOUTH CAROLINA 35.18 LANDRUM
TEKSAS 36.4607 DARROUZETT
... ... ...

Znajdowanie ostatniego zdarzenia krytycznego stanu

Poniższy przykład znajduje ostatni raz zdarzenie z bezpośrednią śmiercią w każdym stanie, pokazując wszystkie kolumny.

Zapytanie najpierw filtruje zdarzenia, aby uwzględnić tylko te zdarzenia, w których wystąpił co najmniej jedna bezpośrednia śmierć. Następnie zapytanie zwraca cały wiersz z najnowszymi StartTime.

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

Wyjście

W tabeli wyników są wyświetlane tylko pierwsze 10 wierszy i pierwsze trzy kolumny.

Stan 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 AMERYKAŃSKIE 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 ...
NOWY MEKSYK 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 ...
JEZIORO MICHIGAN 2007-06-07T13:00:00Z 2007-06-07T13:00:00Z ...
... ... ... ...

Obsługa wartości null

W poniższym przykładzie pokazano obsługę wartości 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

Wyjście

Owoc Wersja Color
Apple 1 Czerwony
Banan Yellow
Gruszka 2 Green (Zielony)

Porównanie z max()

Funkcja arg_max() różni się od funkcji max(). Funkcja arg_max() umożliwia zwrócenie innych kolumn wraz z wartością maksymalną, a max() zwraca tylko wartość maksymalną.

Przykłady

arg_max()

Znajdź ostatni raz zdarzenie z bezpośrednią śmiercią, pokazując wszystkie kolumny w tabeli.

Zapytanie najpierw filtruje zdarzenia, aby uwzględnić tylko zdarzenia, w których wystąpił co najmniej jedna bezpośrednia śmierć. Następnie zapytanie zwraca cały wiersz z najnowszym (maksimum) Godzina rozpoczęcia.

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

Tabela wyników zwraca wszystkie kolumny dla wiersza zawierającego najwyższą wartość w określonym wyrażeniu.

StartTime EndTime EpisodeId Identyfikator zdarzenia Stan EventType ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Lawina ...

max()

Znajdź ostatni raz zdarzenie z bezpośrednią śmiercią.

Zapytanie filtruje zdarzenia, aby uwzględniać tylko zdarzenia, w których występuje co najmniej jedna bezpośrednia śmierć, a następnie zwraca maksymalną wartość czasu rozpoczęcia.

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

Tabela wyników zwraca maksymalną wartość StartTime bez zwracania innych kolumn dla tego rekordu.

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