GitHubContribuir en GitHub: Editar en línea

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() o avg(), 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