Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
StormEventstabulka v databázi Ukázky.
Příklady v tomto článku používají veřejně dostupné tabulky, například
Weathertabulku 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] |