Condividi tramite


Operatore summarize

Si applica a: ✅Microsoft Fabric

Produce una tabella che aggrega il contenuto della tabella di input.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
Istogramma string Nome della colonna del risultato. Il valore predefinito è un nome derivato dall'espressione.
Aggregazione string ✔️ una chiamata a una funzione di aggregazione, ad esempio count() o avg(), con i nomi di colonna come argomenti.
GroupExpression scalare ✔️ un'espressione scalare che può fare riferimento ai dati di input. L'output include tutti i record in cui sono presenti valori distinti di tutte le espressioni di gruppo.
SummarizeParameters string Zero o più parametri separati da spazi sotto forma di Valore nome=che controllano il comportamento. Vedere i parametri supportati.

Nota

Se la tabella di input è vuota, l'output varia a seconda che l'espressione GroupExpression venga usata o meno:

  • Se GroupExpression non viene fornito, l'output è una singola riga (vuota).
  • Se viene specificato GroupExpression , l'output non contiene righe.

Parametri supportati

Nome Descrizione
hint.num_partitions Specifica il numero di partizioni usate per condividere il carico delle query nei nodi del cluster. Vedere query shuffle
hint.shufflekey=<key> La shufflekey query condivide il carico delle query sui nodi del cluster, usando una chiave per partizionare i dati. Vedere query shuffle
hint.strategy=shuffle La shuffle query di strategia condivide il carico di query sui nodi del cluster, in cui ogni nodo elabora una partizione dei dati. Vedere query shuffle

Valori restituiti

Le righe di input vengono disposte in gruppi con gli stessi valori delle espressioni by . Vengono quindi calcolate per ogni gruppo le funzioni di aggregazione specificate, generando una riga per ogni gruppo. Il risultato contiene le colonne by , oltre ad almeno una colonna per ogni aggregazione calcolata. Alcune funzioni di aggregazione restituiscono più colonne.

Il risultato include tutte le righe in cui sono presenti combinazioni distinte di by valori (che potrebbero essere zero). Se non vengono fornite chiavi di gruppo, il risultato contiene un singolo record.

Per riepilogare intervalli di valori numerici, usare bin() per ridurre gli intervalli a valori discreti.

Nota

  • Anche se è possibile specificare espressioni arbitrarie per le espressioni di aggregazione e raggruppamento, è preferibile usare nomi di colonna semplici o applicare bin() a una colonna numerica.
  • I bin orari automatici per le colonne datetime non sono più supportati. Usare i bin espliciti in alternativa. Ad esempio: summarize by bin(timestamp, 1h).

Valori predefiniti delle aggregazioni

La tabella seguente riepiloga i valori predefiniti delle aggregazioni:

Operatore Valore predefinito
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() matrice dinamica vuota ([])
Tutti gli altri Null

Nota

Quando si applicano queste aggregazioni alle entità che includono valori Null, i valori Null vengono ignorati e non vengono inseriti nel calcolo. Vedi Esempi.

Esempi

Gli esempi in questo articolo usano tabelle disponibili pubblicamente nel cluster della Guida , ad esempio la tabella StormEvents nel database degli esempi.

Gli esempi in questo articolo usano tabelle disponibili pubblicamente, ad esempio la tabella StormEvents in Analisi meteo dati di esempio.

L'esempio seguente determina quali combinazioni univoche di State e EventType ci sono per le tempeste che hanno causato un infortunio diretto. Non ci sono funzioni di aggregazione, ma solo chiavi group-by. L'output visualizza solo le colonne per tali risultati.

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

Risultato

La tabella seguente mostra solo le prime 5 righe. Per visualizzare l'output completo, eseguire la query.

Provincia TipoDiEvento
TEXAS Vento di tempesta
TEXAS Piena improvvisa
TEXAS Clima invernale
TEXAS Vento forte
TEXAS Alluvione
... ...

L'esempio seguente trova le tempeste di pioggia minime e massime nelle Hawaii. Non esiste alcuna clausola group-by, quindi nell'output è presente una sola riga.

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

Risultato

Minuti Max
01:08:00 11:55:00

Nell'esempio seguente viene calcolato il numero di tipi di eventi storm univoci per ogni stato e vengono ordinati i risultati in base al numero di tipi storm univoci:

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

Risultato

La tabella seguente mostra solo le prime 5 righe. Per visualizzare l'output completo, eseguire la query.

Provincia TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 23
... ...

Nell'esempio seguente viene calcolato un tipo di evento temporale istogramma con tempeste che durano più di 1 giorno. Poiché Duration ha molti valori, usare bin() per raggruppare i valori in intervalli di 1 giorno.

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

Risultato

TipoDiEvento Durata Conteggio eventi
Siccità 30.00:00:00 1646
Incendio boschivo 30.00:00:00 11
Colpo 30.00:00:00 14
Alluvione 30.00:00:00 20
Pioggia intensa 29.00:00:00 42
... ... ...

Nell'esempio seguente vengono illustrati i valori predefiniti delle aggregazioni quando la tabella di input è vuota. L'operatore summarize viene usato per calcolare i valori predefiniti delle aggregazioni. Quando l'input dell'operatore summarize ha almeno una chiave group-by vuota, anche il risultato è vuoto.

Quando l'input dell'operatore summarize non ha una chiave group-by vuota, il risultato è i valori predefiniti delle aggregazioni usate in summarize Per altre informazioni, vedere Valori predefiniti delle aggregazioni.

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)

Risultato

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

Il risultato di avg_x(x) è NaN dovuto alla divisione per 0.

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

Risultato

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

Risultato

set_x list_x
[] []

L'aggregazione media somma solo i valori non Null e conta solo i valori nel calcolo, ignorando eventuali valori Null.

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

Risultato

sum_y avg_y
15 5

La funzione conteggio standard include valori Null nel conteggio:

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

Risultato

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)

Risultato

set_y set_y1
[5.0] [5.0]