Sdílet prostřednictvím


Operátor shrnutí

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Vytvoří tabulku, která agreguje obsah vstupní tabulky.

Syntax

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

Přečtěte si další informace o konvencích syntaxe.

Parameters

Name Typ Required Description
Column string Název sloupce výsledků Výchozí hodnota je název odvozený z výrazu.
Aggregation string ✔️ Volání agregační funkce , například count() nebo avg(), s názvy sloupců jako argumenty.
GroupExpression scalar ✔️ Skalární výraz, který může odkazovat na vstupní data. Výstup obsahuje tolik záznamů, kolik obsahuje jedinečné hodnoty všech výrazů skupiny.
SummarizeParameters string Nula nebo více parametrů oddělených mezerami ve formě Hodnoty názvu=, které řídí chování. Viz podporované parametry.

Note

Pokud je vstupní tabulka prázdná, výstup závisí na tom, jestli se používá GroupExpression :

  • Pokud groupExpression není zadaný, výstup je jeden (prázdný) řádek.
  • Pokud je zadaný GroupExpression , výstup neobsahuje žádné řádky.

Podporované parametry

Name Description
hint.num_partitions Určuje počet oddílů použitých ke sdílení zatížení dotazu na uzlech clusteru. Zobrazit dotaz náhodného prohazování
hint.shufflekey=<key> Dotaz shufflekey sdílí zatížení dotazu na uzly clusteru pomocí klíče pro dělení dat. Zobrazit dotaz náhodného prohazování
hint.strategy=shuffle shuffle Dotaz strategie sdílí zatížení dotazů na uzly clusteru, kde každý uzel zpracovává jeden oddíl dat. Zobrazit dotaz náhodného prohazování

Returns

Vstupní řádky jsou uspořádány do skupin se stejnými by hodnotami výrazů. Pak se zadané agregační funkce počítají přes každou skupinu a vytvoří řádek pro každou skupinu. Výsledek obsahuje by sloupce a také alespoň jeden sloupec pro každou vypočítanou agregaci. (Některé agregační funkce vracejí více sloupců.)

Výsledek má tolik řádků, kolik existuje různých kombinací by hodnot (což může být nula). Pokud nejsou k dispozici žádné klíče skupiny, výsledek obsahuje jeden záznam.

Chcete-li shrnout rozsahy číselných hodnot, použijte bin() k omezení rozsahů na diskrétní hodnoty.

Note

  • I když pro agregační i seskupovací výrazy můžete zadat libovolné výrazy, je efektivnější použít jednoduché názvy sloupců nebo použít bin() u číselného sloupce.
  • Automatické hodinové intervaly sloupců data a času se už nepodporují. Místo toho použijte explicitní binning. Například summarize by bin(timestamp, 1h).

Výchozí hodnoty agregací

Následující tabulka shrnuje výchozí hodnoty agregací:

Operator Výchozí hodnota
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() prázdné dynamické pole ([])
Všechny ostatní null

Note

Při použití těchto agregací u entit, které obsahují hodnoty null, se hodnoty null ignorují a nefaktorují do výpočtu. Vizte příklady.

Examples

Příklady v tomto článku používají veřejně dostupné tabulky v clusteru nápovědy, jako je StormEvents tabulka v databázi Ukázky.

Příklady v tomto článku používají veřejně dostupné tabulky, například Weather tabulku v galerii ukázek analýzy počasí. Možná budete muset změnit název tabulky v ukázkovém dotazu tak, aby odpovídal tabulce v pracovním prostoru.

Následující příklad určuje, jaké jedinečné kombinace State a EventType existují pro bouře, které způsobily přímé zranění. Neexistují žádné agregační funkce, pouze klíče seskupené podle. Výstup zobrazí pouze sloupce pro tyto výsledky.

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

Output

Následující tabulka zobrazuje pouze prvních 5 řádků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

State EventType
TEXAS Větrná bouře
TEXAS Velká voda
TEXAS Počasí v zimě
TEXAS Vysoký vítr
TEXAS Flood
... ...

Následující příklad najde minimální a maximální těžké déšť bouře na Havaji. Klauzule group-by neexistuje, takže ve výstupu je jenom jeden řádek.

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

Output

Min Max
01:08:00 11:55:00

Následující příklad vypočítá počet jedinečných typů událostí storm pro každý stav a seřadí výsledky podle počtu jedinečných typů storm:

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

Output

Následující tabulka zobrazuje pouze prvních 5 řádků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.

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

Následující příklad vypočítá typy událostí histogramu storm, které měly bouře trvající déle než 1 den. Vzhledem k tomu Duration , že obsahuje mnoho hodnot, použijte bin() k seskupení hodnot do 1denních intervalů.

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

Output

EventType Length EventCount
Drought 30.00:00:00 1646
Wildfire 30.00:00:00 11
Heat 30.00:00:00 14
Flood 30.00:00:00 20
Těžký déšť 29.00:00:00 42
... ... ...

Následující příklad ukazuje výchozí hodnoty agregací, pokud je vstupní tabulka prázdná. Operátor summarize slouží k výpočtu výchozích hodnot agregací. Pokud má vstup summarize operátoru alespoň jeden prázdný klíč seskupit podle, jeho výsledek je také prázdný.

Pokud vstup summarize operátoru nemá prázdný klíč seskupit podle, je výsledkem výchozí hodnoty agregací použitých v části summarize Další informace naleznete v tématu Výchozí hodnoty agregací.

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)

Output

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
Není číslo 0 0 0 0

Výsledek avg_x(x) je NaN způsoben dělením 0.

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

Output

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

Output

set_x list_x
[] []

Avg aggregate sums only the non-null values and counts only those values in its calculation, ignoring any nulls.

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

Output

sum_y avg_y
15 5

Funkce standardního počtu obsahuje hodnoty null v počtu:

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

Output

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)

Output

set_y set_y1
[5.0] [5.0]