Operátor summarize
Vytvoří tabulku, která agreguje obsah vstupní tabulky.
Syntax
T| summarize
[ SummarizeParameters ] [[Column=
] Aggregation [,
...]] [by
[Column=
] GroupExpression [,
...]]
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Typ | Vyžadováno | Popis |
---|---|---|---|
Sloupec | string |
Název sloupce výsledků Výchozí hodnota je název odvozený z výrazu . | |
Agregace | string |
✔️ | Volání agregační funkce , jako count() je nebo avg() , s názvy sloupců jako argumenty. |
GroupExpression | Skalár | ✔️ | Skalární výraz, který může odkazovat na vstupní data. Výstup bude obsahovat tolik záznamů, kolik je jedinečných hodnot všech výrazů skupiny. |
SummarizeParameters | string |
Žádné nebo více parametrů oddělených mezerami ve formě Name= Value , které řídí chování. Projděte si podporované parametry. |
Poznámka
Pokud je vstupní tabulka prázdná, výstup závisí na tom, jestli se použije GroupExpression :
- Pokud GroupExpression není k dispozici, výstup bude jeden (prázdný) řádek.
- Pokud je k dispozici GroupExpression , výstup nebude obsahovat žádné řádky.
Podporované parametry
Název | Description |
---|---|
hint.num_partitions |
Určuje počet oddílů použitých ke sdílení zatížení dotazů na uzlech clusteru. Viz dotaz náhodného prohazování. |
hint.shufflekey=<key> |
Dotaz shufflekey sdílí zatížení dotazů na uzlech clusteru pomocí klíče k dělení dat. Viz dotaz náhodného prohazování. |
hint.strategy=shuffle |
Dotaz shuffle strategie sdílí zatížení dotazů na uzlech clusteru, kde každý uzel zpracuje jeden oddíl dat. Viz dotaz náhodného prohazování. |
Návraty
Vstupní řádky jsou uspořádány do skupin se stejnými hodnotami by
výrazů. Pak se pro každou skupinu počítají zadané agregační funkce a pro každou skupinu se vytvoří řádek. Výsledek obsahuje by
sloupce a také alespoň jeden sloupec pro každou vypočítanou agregaci. (Některé agregační funkce vrací více sloupců.)
Výsledek obsahuje tolik řádků, kolik je jedinečných by
kombinací hodnot (které můžou být nulové). Pokud nejsou k dispozici žádné klíče skupiny, výsledek bude mít jeden záznam.
Pokud chcete shrnout rozsahy číselných hodnot, použijte bin()
k omezení rozsahů na samostatné hodnoty.
Poznámka
- I když můžete zadat libovolné výrazy pro agregační i seskupovací výrazy, je efektivnější použít jednoduché názvy sloupců nebo použít
bin()
pro číselný sloupec. - Automatické hodinové intervaly pro sloupce datetime 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í:
Operátor | 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 |
Poznámka
Při použití těchto agregací u entit, které obsahují hodnoty null, se hodnoty null ignorují a nezapočítávají se do výpočtu. Příklady najdete v tématu Agregace výchozích hodnot.
Příklady
Jedinečná kombinace
Následující dotaz určí, jaké jedinečné kombinace State
a EventType
existují pro bouře, které vedly k přímému zranění. Nejsou k dispozici žádné agregační funkce, pouze seskupené klíče. Ve výstupu se zobrazí jenom sloupce pro tyto výsledky.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Výstup
Následující tabulka obsahuje pouze prvních 5 řádků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.
Stav | Typ události |
---|---|
TEXAS | Bouřkový vítr |
TEXAS | Blesková povodeň |
TEXAS | Zimní počasí |
TEXAS | Silný vítr |
TEXAS | Povodní |
... | ... |
Minimální a maximální časové razítko
Najde minimální a maximální dešťové bouře na Havaji. Neexistuje žádná klauzule group-by, takže výstup obsahuje jenom jeden řádek.
StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)
Výstup
Minimum | Maximum |
---|---|
01:08:00 | 11:55:00 |
Počet jedinečných položek
Vytvořte řádek pro každý kontinent zobrazující počet měst, ve kterých se aktivity vyskytují. Vzhledem k tomu, že pro "kontinent" existuje málo hodnot, není v klauzuli 'by' potřeba žádná seskupovací funkce:
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Výstup
Následující tabulka obsahuje pouze prvních 5 řádků. Pokud chcete zobrazit úplný výstup, spusťte dotaz.
Stav | TypesOfStorms |
---|---|
TEXAS | 27 |
KALIFORNIE | 26 |
PENNSYLVANIA | 25 |
GRUZIE | 24 |
ILLINOIS | 23 |
... | ... |
Histogram
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 intervalů 1 dne.
StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length
Výstup
Typ události | Délka | Počet událostí |
---|---|---|
Sucha | 30.00:00:00 | 1646 |
Wildfire | 30.00:00:00 | 11 |
Tepla | 30.00:00:00 | 14 |
Povodní | 30.00:00:00 | 20 |
Silný déšť | 29.00:00:00 | 42 |
... | ... | ... |
Agreguje výchozí hodnoty.
Pokud má vstup operátoru summarize
alespoň jeden prázdný klíč seskupování, jeho výsledek je také prázdný.
Pokud vstup operátoru summarize
nemá prázdný klíč seskupování, jsou výsledkem výchozí hodnoty agregací použitých v části summarize
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)
Výstup
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ýsledkem je NaN
vydělení avg_x(x)
číslem 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Výstup
count_x | Countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Výstup
set_x | list_x |
---|---|
[] | [] |
Agregovaný průměr sečte všechny hodnoty, které nejsou null, a spočítá pouze ty, které se na výpočtu podílely (nebere v úvahu hodnoty null).
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Výstup
sum_y | avg_y |
---|---|
15 | 5 |
Běžný počet bude počítat hodnoty null:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Výstup
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)
Výstup
set_y | set_y1 |
---|---|
[5.0] | [5.0] |
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro