Partilhar via


arg_max() (função de agregação)

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Localiza uma linha na tabela que maximiza a expressão especificada. Ele retorna todas as colunas da tabela de entrada ou colunas especificadas.

Observação

Esta função é usada em conjunto com o operador resumo.

Aliases preteridos: argmax()

Sintaxe

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

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
ExprToMaximize string ✔️ A expressão para a qual o valor máximo é determinado.
ExprToReturn string ✔️ A expressão determina quais valores de colunas são retornados, a partir da linha que tem o valor máximo para ExprToMaximize. Use um * curinga para retornar todas as colunas.

Devoluções

Retorna uma linha na tabela que maximiza a expressão especificada ExprToMaximizee os valores das colunas especificadas em ExprToReturn.

Dica

Para ver apenas o valor máximo, use a função max().

Exemplos

Encontre a latitude máxima de um evento de tempestade em cada estado.

StormEvents 
| summarize arg_max(BeginLat, BeginLocation) by State

A tabela de resultados exibe apenas as primeiras 10 linhas.

Estado BeginLat BeginLocation
MISSISSIPPI 34.97 BARTON
VERMONT 45 TROIA NORTE
SAMOA AMERICANA -14.2 OFU
HAVAI 22.2113 PRINCEVILLE
MINNESOTA 49.35 ARNESEN
ILHA RHODE 42 WOONSOCKET
INDIANA 41.73 FREMONT
VIRGÍNIA OCIDENTAL 40.62 CHESTER
CAROLINA DO SUL 35.18 LANDRUM
TEXAS 36.4607 DARROUZETT
... ... ...

Encontre a última vez que um evento com uma morte direta aconteceu em cada estado, mostrando todas as colunas.

A consulta primeiro filtra os eventos para incluir apenas aqueles em que houve pelo menos uma morte direta. Em seguida, a consulta retorna a linha inteira com o StartTime mais recente.

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

A tabela de resultados exibe apenas as primeiras 10 linhas e as 3 primeiras colunas.

Estado Horário de Início Tempo de Fim ...
GUAM 2007-01-27T11:15:00Z 2007-01-27T11:30:00Z ...
MASSACHUSETTS 2007-02-03T22:00:00Z 2007-02-04T10:00:00Z ...
SAMOA AMERICANA 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 ...
NOVO MÉXICO 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 ...
... ... ... ...

O exemplo a seguir demonstra manipulação nula.

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

Fruta Versão Cor
Maçã 1 Vermelho
Banana Amarelo
Pera 2 Verde

Comparação com max()

A função arg_max() difere da função max(). A função arg_max() permite que você retorne colunas adicionais junto com o valor máximo, e max() retorna apenas o valor máximo em si.

Exemplos

arg_max()

Encontre a última vez que um evento com uma morte direta aconteceu, mostrando todas as colunas na tabela.

A consulta primeiro filtra os eventos para incluir apenas aqueles em que houve pelo menos uma morte direta. Em seguida, a consulta retorna a linha inteira com o StartTime (máximo) mais recente.

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

A tabela de resultados retorna todas as colunas da linha que contém o valor mais alto na expressão especificada.

Horário de Início Tempo de Fim EpisodeId ID do Evento Estado Tipo de Evento ...
2007-12-31T15:00:00Z 2007-12-31T15:00:00 12688 69700 UTAH Avalanche ...

máx()

Encontre a última vez que um evento com uma morte direta aconteceu.

A consulta filtra eventos para incluir apenas aqueles em que há pelo menos uma morte direta e, em seguida, retorna o valor máximo para StartTime.

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

A tabela de resultados retorna o valor máximo de StartTime, sem retornar outras colunas para esse registro.

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