operador de resumen
Sintaxis
T | summarize [SummarizeParameters] [[ Columna =] Agregación [, ...]] [ by [ Columna =] GroupExpression [, ...]]
Argumentos
- Columna: Nombre opcional para una columna de resultados. El valor predeterminado es un nombre derivado de la expresión.
- Agregación: una llamada a una función de agregación como
count()oavg(), con nombres de columna como argumentos. Consulte la lista de funciones de agregación. - GroupExpression: expresión escalar que puede hacer referencia a los datos de entrada. La salida tendrá tantos registros como valores distintos de todas las expresiones de grupo.
- SummarizeParameters: cero o más parámetros (separados por espacios) con el formato Nombre
=Valor que controlan el comportamiento. Se da soporte a los parámetros siguientes:
Nota
Cuando la tabla de entrada está vacía, la salida depende de si se utiliza GroupExpression :
- Si no se proporciona GroupExpression , la salida será una única fila (vacía).
- Si se proporciona GroupExpression , la salida no tendrá filas.
Devoluciones
Las filas de entrada se organizan en grupos que tienen los mismos valores de 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 agregado calculado. (Algunas funciones de agregación devuelven varias columnas.)
El resultado tiene tantas filas como combinaciones distintas de valores by (que pueden ser cero). Si no se proporcionan claves de grupo, el resultado tiene un único registro.
Para resumir los rangos de valores numéricos, utilice bin() para reducir los rangos a valores discretos.
Nota
- Aunque puede proporcionar expresiones arbitrarias para las expresiones de agregación y agrupación, es más eficaz utilizar nombres de columna simples o aplicar
bin()a una columna numérica.
Lista de funciones de agregación
| Función | Descripción |
|---|---|
| arg_máx () | Devuelve una o más expresiones cuando se maximiza el argumento |
| arg_min () | Devuelve una o más expresiones cuando se minimiza el argumento |
| prom () | Devuelve un valor promedio en el grupo |
| avgif () | Devuelve un valor promedio en el grupo (con predicado) |
| binary_all_and | Devuelve un valor agregado utilizando el binario AND del grupo |
| binario_all_or | Devuelve un valor agregado utilizando el binario OR del grupo |
| binario_all_xor | Devuelve un valor agregado utilizando el binario XOR del grupo |
| COUNT() | Devuelve un recuento del grupo |
| countif () | Devuelve un recuento con el predicado del grupo |
| dcount () | Devuelve un recuento diferenciado aproximado de los elementos de grupo |
| dcountif () | Devuelve un recuento diferenciado aproximado de los elementos de grupo (con predicado) |
| lista_maquillaje () | Devuelve una lista de todos los valores del grupo |
| lista_maquillaje () | Devuelve una lista de todos los valores del grupo (con predicado) |
| set-make () | Devuelve un conjunto de valores distintos dentro del grupo |
| conjunto_cambios () | Devuelve un conjunto de valores distintos dentro del grupo (con predicado) |
| máx () | Devuelve el valor máximo en el grupo |
| maxif () | Devuelve el valor máximo en el grupo (con predicado) |
| mín () | Devuelve el valor mínimo en el grupo |
| minif () | Devuelve el valor mínimo en el grupo (con predicado) |
| suma () | Devuelve la suma de los elementos del grupo |
| sumif () | Devuelve la suma de los elementos dentro del grupo (con predicado) |
| take_any () | Devuelve un valor aleatorio no vacío para el grupo |
| take_anyif () | Devuelve un valor aleatorio no vacío para el grupo (con predicado) |
Agrega valores predeterminados
La tabla siguiente resume los valores predeterminados de las agregaciones:
| Operador | Valor predeterminado |
|---|---|
count(), countif(), dcount(), dcountif() |
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 |
Cuando se utilizan estos agregados sobre entidades que incluyen valores nulos, los valores nulos se ignorarán y no participarán en el cálculo (consulte los ejemplos siguientes).
Ejemplos
Este ejemplo simplemente cuenta todos los sucesos de la tabla events .
events
| project original_time
| where original_time > ago(24h)
| summarize NumEvents=count()
Resultados
NumEvents |
|---|
4163038 |
Ejemplo siguiente
Este ejemplo devuelve el recuento total de sucesos de las últimas 24 horas, agrupados en periodos de 24hr .
events
| project original_time
| where original_time > ago(24h)
| summarize NumEvents=count() by HourBucket=bin(original_time, 60m)
| sort by HourBucket desc
| take 5
Resultados
HourBucket |
NumEvents |
|---|---|
2022-06-12 23:00:00.000 |
8374746 |
2022-06-12 22:00:00.000 |
8214746 |
2022-06-12 21:00:00.000 |
7374746 |
2022-06-12 20:00:00.000 |
9938733 |
2022-06-12 19:00:00.000 |
0 |
2022-06-12 18:00:00.000 |
1 |
Una tabla que muestra cuántos sucesos se han ingerido en cada intervalo de una hora durante las últimas 24 horas. La tabla contendrá dos columnas, EventCount que es el recuento de los sucesos para la hora, y HourBucket es el intervalo de tiempo agrupado de agregación para los sucesos.
Combinación exclusiva
Determine qué combinaciones exclusivas de sucesos name y severity hay en una tabla. No hay funciones de agregación, solo claves de agrupar por. La salida sólo mostrará las columnas para esos resultados:
events
| project severity, name, original_time
| where original_time > ago(24h)
| where severity > 6
| summarize by name, severity
| sort by name asc, severity desc
| take 5
Resultados
name |
severity |
|---|---|
(Primary) Failover cable OK |
10 |
(Primary) Failover cable Not OK |
6 |
(Primary) Failover message block alloc failed |
7 |
30419 Internet Explorer 8 XSS Attack |
8 |
A fatal alert was generated and sent to the remote endpoint |
7 |
Indicación de fecha y hora mínima y máxima
Busca la indicación de fecha y hora mínima y máxima de todos los sucesos de la tabla events . No hay ninguna cláusula group-by, por lo que sólo hay una fila en la salida:
events
| project severity, original_time
| where original_time > ago(24h)
| where severity > 6
| summarize MinTime=min(original_time), MaxTime=max(original_time)
Resultados
Min |
Max |
|---|---|
1975-06-09 09:21:45 |
2015-12-24 23:45:00 |
Recuento de diferenciaciones
Cree una fila para cada name, mostrando un recuento de src_ip distintos los sucesos ingeridos.
events
| project name, severity, original_time, src_ip
| where original_time > ago(24h)
| where severity > 6 and isnotempty(name) and isnotempty(src_ip)
| summarize SrcIpCount=count_distinct(src_ip) by Name=name
| order by SrcIpCount desc
| take 5
Resultados
| Nombre | SrcIp |
|---|---|
| El proceso de la política de grupo ha fallado | 385 |
| Violación de protección de contenido | 367 |
| Infracción de aplicación del servidor web | 312 |
| Omisión de autenticación de servidor Jabber de Openfire | 305 |
| Denegar comprobación de vía de acceso inversa de protocolo | 290 |