operator summarize

Produceert een tabel die de inhoud van de invoertabel samenvoegt.

Syntax

T| summarize [ SummarizeParameters ] [[Kolom=] Aggregatie [, ...]] [by [Kolom=] GroupExpression [, ...]]

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Kolom string De naam voor de resultaatkolom. Standaard ingesteld op een naam die is afgeleid van de expressie.
Aggregatie string ✔️ Een aanroep van een aggregatiefunctie zoals count() of avg(), met kolomnamen als argumenten.
GroupExpression Scalaire ✔️ Een scalaire expressie die kan verwijzen naar de invoergegevens. De uitvoer bevat net zoveel records als er afzonderlijke waarden van alle groepsexpressies zijn.
SummarizeParameters string Nul of meer door spaties gescheiden parameters in de vorm van Naamwaarde= die het gedrag bepalen. Zie ondersteunde parameters.

Notitie

Wanneer de invoertabel leeg is, is de uitvoer afhankelijk van of GroupExpression wordt gebruikt:

  • Als GroupExpression niet is opgegeven, is de uitvoer één (lege) rij.
  • Als GroupExpression is opgegeven, heeft de uitvoer geen rijen.

Ondersteunde parameters

Naam Beschrijving
hint.num_partitions Hiermee geeft u het aantal partities op dat wordt gebruikt om de querybelasting op clusterknooppunten te delen. Bekijk query in willekeurige volgorde
hint.shufflekey=<key> De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. Bekijk query in willekeurige volgorde
hint.strategy=shuffle De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. Bekijk query in willekeurige volgorde

Retouren

De invoerrijen zijn gerangschikt in groepen met dezelfde waarden als de by expressies. Vervolgens worden de opgegeven aggregatiefuncties berekend voor elke groep, waardoor een rij voor elke groep wordt geproduceerd. Het resultaat bevat de by kolommen en ook ten minste één kolom voor elke berekende aggregatie. (Sommige aggregatiefuncties retourneren meerdere kolommen.)

Het resultaat heeft net zoveel rijen als er afzonderlijke combinaties van by waarden zijn (die nul kunnen zijn). Als er geen groepssleutels zijn opgegeven, heeft het resultaat één record.

Als u het bereik van numerieke waarden wilt samenvatten, gebruikt bin() u om bereiken te verminderen tot discrete waarden.

Notitie

  • Hoewel u willekeurige expressies kunt opgeven voor zowel de aggregatie- als groeperingsexpressie, is het efficiënter om eenvoudige kolomnamen te gebruiken of toe te passen op bin() een numerieke kolom.
  • De automatische opslaglocaties per uur voor datum/tijd-kolommen worden niet meer ondersteund. Gebruik in plaats daarvan expliciete binning. Bijvoorbeeld summarize by bin(timestamp, 1h).

Standaardwaarden van aggregaties

De volgende tabel bevat een overzicht van de standaardwaarden van aggregaties:

Operator Standaardwaarde
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() lege dynamische matrix ([])
Alle andere null

Notitie

Wanneer u deze aggregaties toepast op entiteiten die null-waarden bevatten, worden de null-waarden genegeerd en worden deze niet meegenomen in de berekening. Zie Standaardwaarden samenvoegen voor voorbeelden.

Voorbeelden

Prijs samenvatten per fruit en leverancier.

Unieke combinatie

De volgende query bepaalt welke unieke combinaties van State en EventType er zijn voor stormen die hebben geleid tot direct letsel. Er zijn geen aggregatiefuncties, alleen group-by-sleutels. In de uitvoer worden alleen de kolommen voor deze resultaten weergegeven.

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

Uitvoer

In de volgende tabel ziet u alleen de eerste 5 rijen. Voer de query uit om de volledige uitvoer te zien.

Staat EventType
TEXAS Onweerswind
TEXAS Flash Flood
TEXAS Winterweer
TEXAS Hoge wind
TEXAS Overstroming
... ...

Minimum- en maximumtijdstempel

Vindt de minimale en maximale zware regenstormen in Hawaï. Er is geen group-by-component, dus er is slechts één rij in de uitvoer.

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

Uitvoer

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

Uniek aantal

Maak een rij voor elk continent, met een telling van de steden waarin activiteiten plaatsvinden. Omdat er weinig waarden zijn voor 'continent', is er geen groeperingsfunctie nodig in de 'by'-component:

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

Uitvoer

In de volgende tabel ziet u alleen de eerste 5 rijen. Voer de query uit om de volledige uitvoer te zien.

Staat TypenOfStorms
TEXAS 27
CALIFORNIË 26
PENNSYLVANIA 25
GEORGIË 24
ILLINOIS 23
... ...

Histogram

In het volgende voorbeeld wordt een histogram voor stormgebeurtenissen berekend met stormen die langer dan 1 dag duurden. Omdat Duration heeft veel waarden, gebruikt bin() u om de waarden te groepeer in intervallen van 1 dag.

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

Uitvoer

EventType Lengte EventCount
Droogte 30.00:00:00 1646
Wildfire 30.00:00:00 11
Heat 30.00:00:00 14
Overstroming 30.00:00:00 20
Zware regen 29.00:00:00 42
... ... ...

Standaardwaarden aggregeren

Wanneer de invoer van summarize de operator ten minste één lege group-by-sleutel heeft, is het resultaat ook leeg.

Als de invoer van summarize de operator geen lege group-by-sleutel heeft, zijn het resultaat de standaardwaarden van de aggregaties die worden gebruikt in de summarizeZie Standaardwaarden van aggregaties voor meer informatie.

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)

Uitvoer

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
Geen getal 0 0 0 0

Het resultaat van avg_x(x) wordt NaN veroorzaakt door delen door 0.

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

Uitvoer

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

Uitvoer

set_x list_x
[] []

Het geaggregeerde gemiddelde telt alle niet-null-waarden op en alleen de niet-null-waarden die hebben deelgenomen aan de berekening (er wordt geen rekening gehouden met null-waarden).

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

Uitvoer

sum_y avg_y
15 5

Met het reguliere aantal worden null-waarden geteld:

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

Uitvoer

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)

Uitvoer

set_y set_y1
[5.0] [5.0]