Compartir a través de


Operador summarize

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Crea una tabla que agrega el contenido de la tabla de entrada.

Sintaxis

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

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Obligatorio Descripción
Columna string Nombre de la columna de resultado. El valor predeterminado es un nombre derivado de la expresión.
Agregación string ✔️ una llamada a una función de agregación como count() o avg(), con nombres de columna como argumentos.
GroupExpression escalares ✔️ expresión escalar que puede hacer referencia a los datos de entrada. La salida tiene tantos registros como hay valores distintos de todas las expresiones de grupo.
SummarizeParameters string Cero o más parámetros separados por espacios en forma de Valor de nombre = que controlan el comportamiento. Consulte parámetros admitidos.

Nota:

Cuando la tabla de entrada está vacía, el resultado depende de si se usa GroupExpression:

  • Si no se proporciona GroupExpression , la salida es una sola fila (vacía).
  • Si se proporciona GroupExpression , la salida no tiene filas.

Parámetros admitidos

Nombre Descripción
hint.num_partitions Especifica el número de particiones usadas para compartir la carga de consultas en los nodos del clúster. Consulte la consulta aleatoria.
hint.shufflekey=<key> La consulta shufflekey comparte la carga de consultas en los nodos del clúster mediante una clave para crear particiones de datos. Consulte la consulta aleatoria.
hint.strategy=shuffle La consulta de estrategia shuffle comparte la carga de consultas en los nodos del clúster, donde cada nodo procesa una partición de los datos. Consulte la consulta aleatoria.

Devoluciones

Las filas de entrada están organizadas en grupos que tienen los mismos valores que las expresiones by . A continuación, las funciones de agregación especificadas se calculan sobre cada grupo, generando una fila para cada grupo. El resultado contiene las columnas by y también al menos una columna para cada agregación procesada. (Algunas funciones de agregación devuelven varias columnas.)

El resultado tiene tantas filas como hay combinaciones distintas de by valores (que podrían ser cero). Si no se especifica ninguna clave de grupo, el resultado tiene un único registro.

Para resumir intervalos de valores numéricos, use bin() para reducir los intervalos a valores discretos.

Nota:

  • Aunque puede proporcionar expresiones arbitrarias para las expresiones de agregación y las de agrupación, resulta más eficaz usar nombres de columna simples, o bien aplicar bin() a una columna numérica.
  • Ya no se admiten los intervalos automáticos por hora para las columnas datetime. Use la discretización explícita en su lugar. Por ejemplo, summarize by bin(timestamp, 1h).

Valores predeterminados de agregaciones

En la siguiente tabla se resumen los valores predeterminados de las agregaciones:

Operador Valor predeterminado
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 vacía ([])
Todos los demás nulo

Nota:

Al aplicar estos agregados a entidades que incluyen valores NULL, se omiten los valores NULL y no se factoriza en el cálculo. Vea Ejemplos.

Ejemplos

En los ejemplos de este artículo se usan tablas disponibles públicamente en el clúster de , como la tabla StormEvents de la base de datos ejemplos de.

En los ejemplos de este artículo se usan tablas disponibles públicamente, como la tabla StormEvents del análisis meteorológico datos de ejemplo.

En el ejemplo siguiente se determina qué combinaciones únicas de State y EventType hay para tormentas que dieron lugar a lesiones directas. No hay ninguna función de agregación, solo claves de agrupación. La salida muestra solo las columnas de esos resultados.

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

Salida

En la tabla siguiente solo se muestran las 5 primeras filas. Para ver la salida completa, ejecute la consulta.

Estado Tipo de evento
TEXAS Viento de tormenta
TEXAS Riada
TEXAS Clima de invierno
TEXAS Viento fuerte
TEXAS Inundación
... ...

En el ejemplo siguiente se encuentran las tormentas de lluvia mínima y máxima en Hawaii. No hay ninguna cláusula de agrupar por, así que hay una sola fila en la salida:

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

Salida

Minuto Máx.
01:08:00 11:55:00

En el ejemplo siguiente se calcula el número de tipos de eventos de storm únicos para cada estado y se ordenan los resultados por el número de tipos de tormenta únicos:

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

Salida

En la tabla siguiente solo se muestran las 5 primeras filas. Para ver la salida completa, ejecute la consulta.

Estado TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENSILVANIA 25
GEORGIA veinticuatro
ILLINOIS 23
... ...

En el ejemplo siguiente se calcula un histograma con los tipos de eventos de tormenta que indicaban tormentas que duraban más de 1 día. Como Duration tiene muchos valores, debe usar bin() para agrupar los valores en intervalos de 1 día.

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

Salida

Tipo de evento Largura Conteo de eventos
Sequía 30.00:00:00 1646
Incendio forestal 30.00:00:00 11
Heat (Calor) 30.00:00:00 14
Inundación 30.00:00:00 20
Lluvia intensa 29.00:00:00 42
... ... ...

En el ejemplo siguiente se muestran los valores predeterminados de agregados cuando la tabla de entrada está vacía. El summarize operador se usa para calcular los valores predeterminados de los agregados. Cuando la entrada del operador summarize tiene al menos una clave de agrupación vacía, el resultado también está vacío.

Cuando la entrada del operador summarize no tiene ninguna clave de agrupación vacía, el resultado son los valores predeterminados de los agregados que se usan en summarizePara obtener más información, vea Valores predeterminados de agregaciones.

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)

Salida

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

El resultado de avg_x(x) es NaN debido a dividirlo por 0.

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

Salida

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

Salida

set_x list_x
[] []

El agregado promedio suma solo los valores que no son NULL y solo cuenta esos valores en su cálculo, ignorando los valores NULL.

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

Salida

sum_y avg_y
15 5

La función de recuento estándar incluye valores NULL en su recuento:

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

Salida

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)

Salida

set_y set_y1
[5,0] [5,0]