operador summarize
Produz uma tabela que agrega o conteúdo da tabela de entrada.
Syntax
T| summarize
[ SummarizeParameters ] [[Column=
] Aggregation [,
...]] [by
[Column=
] GroupExpression [,
...]]
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Tipo | Necessário | Descrição |
---|---|---|---|
Coluna | string |
O nome da coluna de resultados. A predefinição é um nome derivado da expressão. | |
Agregação | string |
✔️ | Uma chamada para uma função de agregação , como count() ou avg() , com nomes de coluna como argumentos. |
GroupExpression | escalar | ✔️ | Uma expressão escalar que pode referenciar os dados de entrada. O resultado terá tantos registos quanto existem valores distintos de todas as expressões de grupo. |
SummarizeParameters | string |
Zero ou mais parâmetros separados por espaço sob a forma deValor de Nome= que controlam o comportamento. Veja os parâmetros suportados. |
Nota
Quando a tabela de entrada está vazia, o resultado depende se a GroupExpression é utilizada:
- Se GroupExpression não for fornecido, o resultado será uma única linha (vazia).
- Se GroupExpression for fornecido, o resultado não terá linhas.
Parâmetros suportados
Nome | Descrição |
---|---|
hint.num_partitions |
Especifica o número de partições utilizadas para partilhar a carga de consulta em nós de cluster. Ver consulta aleatória |
hint.shufflekey=<key> |
A shufflekey consulta partilha o carregamento da consulta em nós de cluster, utilizando uma chave para particionar dados. Ver consulta aleatória |
hint.strategy=shuffle |
A shuffle consulta de estratégia partilha a carga de consulta em nós de cluster, onde cada nó processará uma partição dos dados. Ver consulta aleatória |
Devoluções
As linhas de entrada são dispostas em grupos com os mesmos valores das by
expressões. Em seguida, as funções de agregação especificadas são calculadas em cada grupo, produzindo uma linha para cada grupo. O resultado contém as by
colunas e, pelo menos, uma coluna para cada agregação calculada. (Algumas funções de agregação devolvem múltiplas colunas.)
O resultado tem tantas linhas quanto existem combinações distintas de by
valores (que podem ser zero). Se não existirem chaves de grupo fornecidas, o resultado tem um único registo.
Para resumir ao longo de intervalos de valores numéricos, utilize bin()
para reduzir intervalos para valores discretos.
Nota
- Embora possa fornecer expressões arbitrárias para as expressões de agregação e agrupamento, é mais eficiente utilizar nomes de coluna simples ou aplicar
bin()
a uma coluna numérica. - As classes automáticas por hora para colunas datetime já não são suportadas. Em alternativa, utilize a discretização explícita. Por exemplo,
summarize by bin(timestamp, 1h)
.
Valores predefinidos de agregações
A tabela seguinte resume os valores predefinidos das agregações:
Operador | Valor predefinido |
---|---|
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 ([]) |
Todos os outros | nulo |
Nota
Ao aplicar estes agregados a entidades que incluem valores nulos, os valores nulos são ignorados e não têm em conta o cálculo. Para obter exemplos, veja Agrega valores predefinidos.
Exemplos
Combinação exclusiva
A consulta seguinte determina as combinações únicas de State
e EventType
existem para tempestades que resultaram em ferimentos diretos. Não existem funções de agregação, apenas teclas agrupar por. O resultado apenas mostrará as colunas desses resultados.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Saída
A tabela seguinte mostra apenas as primeiras 5 linhas. Para ver o resultado completo, execute a consulta.
Estado | EventType |
---|---|
TEXAS | Vento trovoada |
TEXAS | Inundação repentina |
TEXAS | Tempo de Inverno |
TEXAS | Vento Forte |
TEXAS | Inundação |
... | ... |
Carimbo de data/hora mínimo e máximo
Encontra as tempestades de chuva mínimas e máximas no Havai. Não existe nenhuma cláusula group-by, pelo que existe 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)
Saída
Mín. | Máx |
---|---|
01:08:00 | 11:55:00 |
Contagem distinta
Crie uma linha para cada continente, mostrando uma contagem das cidades em que as atividades ocorrem. Como existem poucos valores para "continente", não é necessária nenhuma função de agrupamento na cláusula "by":
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Saída
A tabela seguinte mostra apenas as primeiras 5 linhas. Para ver a saída completa, execute a consulta.
Estado | TypesOfStorms |
---|---|
TEXAS | 27 |
CALIFÓRNIA | 26 |
Porto | 25 |
GEÓRGIA | 24 |
ILLINOIS | 23 |
... | ... |
Histograma
O exemplo seguinte calcula os tipos de eventos de tempestade de histograma que tiveram tempestades que duram mais de 1 dia. Como Duration
tem muitos valores, utilize bin()
para agrupar os respetivos 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
Saída
EventType | Comprimento | EventCount |
---|---|---|
Seca | 30.00:00:00 | 1646 |
Incêndio florestal | 30.00:00:00 | 11 |
Calor | 30.00:00:00 | 14 |
Inundação | 30.00:00:00 | 20 |
Chuva Intensa | 29.00:00:00 | 42 |
... | ... | ... |
Agrega valores predefinidos
Quando a entrada do summarize
operador tem, pelo menos, uma chave agrupar por vazia, o resultado também está vazio.
Quando a entrada do summarize
operador não tem uma chave agrupar por vazia, o resultado são os valores predefinidos dos agregados utilizados em summarize
Para obter mais informações, consulte Valores predefinidos 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)
Saída
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)
deve-se NaN
à divisão por 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Saída
count_x | countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Saída
set_x | list_x |
---|---|
[] | [] |
A média agregada soma todos os não nulos e conta apenas aqueles que participaram no cálculo (não terá em conta os nulos).
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Saída
sum_y | avg_y |
---|---|
15 | 5 |
A contagem regular irá contar valores nulos:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Saída
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)
Saída
set_y | set_y1 |
---|---|
[5.0] | [5.0] |
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários