Partilhar via


summarize operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Produz uma tabela que agrega o conteúdo da tabela de entrada.

Syntax

T| summarize [ SummarizeParameters ] [[Column=] Aggregation [, ...]] [by [Column=] GroupExpression [, ...]]

Learn more about syntax conventions.

Parameters

Name Tipo Required Description
Column string O nome da coluna de resultados. O padrão é um nome derivado da expressão.
Aggregation string ✔️ A call to an aggregation function such as count() or avg(), with column names as arguments.
GroupExpression scalar ✔️ Uma expressão escalar que pode fazer referência aos dados de entrada. A saída tem tantos registros quanto há valores distintos de todas as expressões de grupo.
SummarizeParameters string Zero or more space-separated parameters in the form of Name=Value that control the behavior. See supported parameters.

Note

When the input table is empty, the output depends on whether GroupExpression is used:

  • If GroupExpression isn't provided, the output is a single (empty) row.
  • If GroupExpression is provided, the output has no rows.

Supported parameters

Name Description
hint.num_partitions Especifica o número de partições usadas para compartilhar a carga de consulta em nós de cluster. See shuffle query
hint.shufflekey=<key> A consulta shufflekey compartilha a carga de consulta em nós de cluster, usando uma chave para particionar dados. See shuffle query
hint.strategy=shuffle A consulta de estratégia shuffle compartilha a carga de consulta em nós de cluster, onde cada nó processa uma partição dos dados. See shuffle query

Returns

As linhas de entrada são organizadas em grupos com os mesmos valores das expressões by. Em seguida, as funções de agregação especificadas são calculadas sobre cada grupo, produzindo uma linha para cada grupo. O resultado contém as by colunas e também pelo menos uma coluna para cada agregado calculado. (Algumas funções de agregação retornam várias colunas.)

O resultado tem tantas linhas quanto há combinações distintas de by valores (que podem ser zero). Se não houver chaves de grupo fornecidas, o resultado terá um único registro.

Para resumir sobre intervalos de valores numéricos, use bin() para reduzir intervalos para valores discretos.

Note

  • Embora você possa fornecer expressões arbitrárias para as expressões de agregação e agrupamento, é mais eficiente usar nomes de colunas simples ou aplicábin() a uma coluna numérica.
  • Os compartimentos automáticos por hora para colunas datetime não são mais suportados. Em vez disso, use a vinculação explícita. Por exemplo, summarize by bin(timestamp, 1h).

Valores padrão de agregações

A tabela a seguir resume os valores padrão das agregações:

Operator Default value
count(), countif(), , dcount()dcountif(), count_distinct(), sum(), sumif(), variance()varianceif()stdev()stdevif() 0
make_bag(), make_bag_if(), make_list(), make_list_if(), make_set(), make_set_if() matriz dinâmica vazia ([])
All others null

Note

Ao aplicar essas agregações a entidades que incluem valores nulos, os valores nulos são ignorados e não são considerados no cálculo. See Examples.

Examples

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Talvez seja necessário modificar o nome da tabela na consulta de exemplo para corresponder à tabela em seu espaço de trabalho.

O exemplo a seguir determina quais combinações únicas de State e EventType existem para tempestades que resultaram em ferimentos diretos. Não há funções de agregação, apenas teclas agrupadas. A saída exibe apenas as colunas para esses resultados.

StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType

Output

A tabela a seguir mostra apenas as primeiras 5 linhas. Para ver a saída completa, execute a consulta.

State EventType
TEXAS Thunderstorm Wind
TEXAS Flash Flood
TEXAS Winter Weather
TEXAS High Wind
TEXAS Flood
... ...

O exemplo a seguir localiza o mínimo e o máximo de tempestades fortes no Havaí. Não há cláusula de agrupamento por, portanto, há apenas uma linha na saída.

StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)

Output

Min Max
01:08:00 11:55:00

O exemplo a seguir calcula o número de tipos de eventos de tempestade exclusivos para cada estado e classifica os resultados pelo número de tipos de tempestade exclusivos:

StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms

Output

A tabela a seguir mostra apenas as primeiras 5 linhas. Para ver a saída completa, execute a consulta.

State TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 23
... ...

O exemplo a seguir calcula um histograma tipos de evento de tempestade que tiveram tempestades durando mais de 1 dia. Como Duration tem muitos valores, use bin() para agrupar seus valores em intervalos de 1 dia.

StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length

Output

EventType Length EventCount
Drought 30.00:00:00 1646
Wildfire 30.00:00:00 11
Heat 30.00:00:00 14
Flood 30.00:00:00 20
Heavy Rain 29.00:00:00 42
... ... ...

O exemplo a seguir mostra os valores padrão de agregações quando a tabela de entrada está vazia. O summarize operador é usado para calcular os valores padrão dos agregados. Quando a entrada de summarize operador tem pelo menos uma chave agrupada vazia, seu resultado também está vazio.

Quando a entrada de summarize operador não tem uma chave agrupada vazia, o resultado são os valores padrão das agregações usadas no summarize Para obter mais informações, consulte Valores padrão de agregações.

datatable(x:long)[]
| summarize any_x=take_any(x), arg_max_x=arg_max(x, *), arg_min_x=arg_min(x, *), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)

Output

any_x arg_max_x arg_min_x avg_x schema_x max_x min_x percentile_x_55 hll_x stdev_x sum_x sumif_x tdigest_x variance_x
NaN 0 0 0 0

O resultado de avg_x(x) é NaN devido à divisão por 0.

datatable(x:long)[]
| summarize  count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)

Output

count_x countif_ dcount_x dcountif_x
0 0 0 0
datatable(x:long)[]
| summarize  make_set(x), make_list(x)

Output

set_x list_x
[] []

O agregado avg soma apenas os valores não nulos e conta apenas esses valores em seu cálculo, ignorando quaisquer nulos.

range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)

Output

sum_y avg_y
15 5

A função de contagem padrão inclui valores nulos em sua contagem:

range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)

Output

count_y
2
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize make_set(y), make_set(y)

Output

set_y set_y1
[5.0] [5.0]