GitHubContribuisci in GitHub: Modifica in linea

operatore di riepilogo

Sintassi

T | summarize [SummarizeParameters] [[ Colonna =] Aggregazione [, ...]] [ by [ Colonna =] GroupExpression [, ...]]

Argomenti

  • Colonna: nome facoltativo per una colonna di risultati. Il valore predefinito è un nome derivato dall'espressione.
  • Aggregazione: una chiamata a una funzione di aggregazione come count() o avg(), con i nomi colonna come argomenti. Vedere l' elenco delle funzioni di aggregazione.
  • GroupExpression: un'espressione scalare che può fare riferimento ai dati di input. L'output avrà tanti record quanti sono i valori distinti di tutte le espressioni di gruppo.
  • SummarizeParameters: zero o più parametri (separati da spazi) sotto forma di Nome = Valore che controlla il comportamento. Sono supportati i seguenti parametri:

Nota

Quando la tabella di input è vuota, l'output dipende dall'utilizzo di GroupExpression :

  • Se GroupExpression non viene fornito, l'output sarà una singola riga (vuota).
  • Se viene fornito GroupExpression , l'output non avrà righe.

Restituisce

Le righe di input sono organizzate in gruppi che hanno gli stessi valori delle espressioni by . Quindi le funzioni di aggregazione specificate vengono calcolate su ciascun gruppo, producendo una riga per ciascun gruppo. Il risultato contiene le colonne by e almeno una colonna per ogni aggregato calcolato. (Alcune funzioni di aggregazione restituiscono più colonne).

Il risultato ha un numero di righe pari al numero di combinazioni distinte di valori by (che possono essere zero). Se non ci sono chiavi di gruppo fornite, il risultato ha un singolo record.

Per riepiloghi su intervalli di valori numerici, utilizzare bin() per ridurre gli intervalli a valori discreti.

Nota

  • Sebbene sia possibile fornire espressioni arbitrarie sia per le espressioni di aggregazione che di raggruppamento, è più efficiente utilizzare nomi di colonna semplici o applicare bin() a una colonna numerica.

Elenco delle funzioni di aggregazione

Funzione Descrizione
arg_max () Restituisce una o più espressioni quando l'argomento è massimizzato
arg_min () Restituisce una o più espressioni quando l'argomento è ridotto al minimo
media () Restituisce un valore medio nel gruppo
avgif () Restituisce un valore medio nel gruppo (con predicato)
binario_all_e Restituisce il valore aggregato utilizzando il valore binario AND del gruppo
binary_all_or Restituisce il valore aggregato utilizzando il valore binario OR del gruppo
xore_all_binario Restituisce il valore aggregato utilizzando il valore binario XOR del gruppo
conteggio () Restituisce un conteggio del gruppo
paese () Restituisce un conteggio con il predicato del gruppo
conteggio () Restituisce un conteggio distinto approssimativo degli elementi del gruppo
dcountif () Restituisce un conteggio distinto approssimativo degli elementi del gruppo (con predicato)
make_list () Restituisce un elenco di tutti i valori all'interno del gruppo
make_list_if () Restituisce un elenco di tutti i valori all'interno del gruppo (con predicato)
make_set () Restituisce una serie di valori distinti all'interno del gruppo
make_set_if () Restituisce una serie di valori distinti all'interno del gruppo (con predicato)
max () Restituisce il valore massimo nel gruppo
maxif () Restituisce il valore massimo nel gruppo (con predicato)
min () Restituisce il valore minimo nel gruppo
minif () Restituisce il valore minimo nel gruppo (con predicato)
somma () Restituisce la somma degli elementi all'interno del gruppo
sumif () Restituisce la somma degli elementi all'interno del gruppo (con predicato)
take_any () Restituisce un valore casuale non vuoto per il gruppo
take_anyif () Restituisce un valore casuale non vuoto per il gruppo (con predicato)

Aggrega valori predefiniti

La seguente tabella riepiloga i valori predefiniti delle aggregazione:

Operatore Valore predefinito
count(), countif(), dcount(), dcountif() 0
make_bag(), make_bag_if(), make_list(), make_list_if(), make_set(), make_set_if() array dinamico vuoto ([])
Tutti gli altri null

Quando si utilizzano questi aggregati su entità che includono valori null, i valori null verranno ignorati e non parteciperanno al calcolo (vedere gli esempi riportati di seguito).

Esempi

Questo esempio conta semplicemente tutti gli eventi nella tabella events .

events
    | project original_time
    | where original_time > ago(24h)
    | summarize NumEvents=count()

Risultati

NumEvents
4163038

Esempio successivo

Questo esempio restituisce il numero totale di eventi per le ultime 24 ore, raccolti in periodi 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

Risultati

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 tabella che mostra quanti eventi sono stati inseriti in ogni intervallo di un'ora per le ultime 24 ore. La tabella conterrà due colonne, EventCount , che è il conteggio degli eventi per l'ora e HourBucket è la finestra temporale raccolta di aggregazione per gli eventi.

Combinazione univoca

Determinare quali combinazioni univoche di evento name e di severity sono presenti in una tabella. Non ci sono funzioni di aggregazione, solo chiavi di raggruppamento. L'output mostrerà solo le colonne per tali risultati:

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

Risultati

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

Data / ora minima e massima

Trova la data/ora minima e massima di tutti gli eventi nella tabella events . Non c'è alcuna clausola group - by, quindi c'è solo una riga nell'output:

events 
    | project severity, original_time
    | where original_time > ago(24h)
    | where severity > 6
    | summarize MinTime=min(original_time), MaxTime=max(original_time)

Risultati

Min Max
1975-06-09 09:21:45 2015-12-24 23:45:00

Conteggio distinto

Crea una riga per ogni name, mostrando un conteggio di src_ip distinti gli eventi inseriti.

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

Risultati

Nome Conteggio SrcIp
L'elaborazione della politica di gruppo non è riuscita 385
Violazione protezione contenuto 367
Violazione applicazione server web 312
Bypass autenticazione server Openfire Jabber 305
Nega controllo percorso inverso protocollo 290