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
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 summarize
Zie 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] |
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor