Delen via


operator samenvatten

Van toepassing op: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel-

Produceert een tabel waarmee de inhoud van de invoertabel wordt samengevoegd.

Syntaxis

T| summarize [ SummarizeParameters ] [[Column=] Aggregation [, ...]] [by [Column=] 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 scalar ✔️ Een scalaire expressie die naar de invoergegevens kan verwijzen. De uitvoer heeft zo veel records als er afzonderlijke waarden van alle groepsexpressies zijn.
SummarizeParameters- string Nul of meer door spaties gescheiden parameters in de vorm van Naam=Waarde 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. Zie query's in willekeurige volgorde
hint.shufflekey=<key> De shufflekey query deelt de querybelasting op clusterknooppunten met behulp van een sleutel om gegevens te partitioneren. Zie query's in willekeurige volgorde
hint.strategy=shuffle De shuffle strategiequery deelt de querybelasting op clusterknooppunten, waarbij elk knooppunt één partitie van de gegevens verwerkt. Zie query's in willekeurige volgorde

Retourneert

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

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

Gebruik bin() om een overzicht te maken van meerdere bereiken met numerieke waarden om bereiken te beperken tot discrete waarden.

Notitie

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

Standaardwaarden van aggregaties

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

Bediener 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 anderen nul

Notitie

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

Voorbeelden

In het voorbeeld in deze sectie ziet u hoe u de syntaxis gebruikt om aan de slag te gaan.

In de voorbeelden in dit artikel worden openbaar beschikbare tabellen gebruikt in de Help-cluster, zoals de StormEvents tabel in de Voorbeelden database.

In de voorbeelden in dit artikel worden openbaar beschikbare tabellen gebruikt, zoals de tabel StormEvents in de weather analytics voorbeeldgegevens.

Prijs samenvatten per fruit en leverancier.

Unieke combinatie

De volgende query bepaalt welke unieke combinaties van State en EventType er zijn voor stormen die tot directe schade hebben geleid. Er zijn geen aggregatiefuncties, alleen groeperen op 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 worden alleen de eerste vijf rijen weergegeven. Als u de volledige uitvoer wilt zien, voert u de query uit.

Staat EventType
TEXAS Onweer wind
TEXAS Stortvloed
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

Met de volgende query wordt het aantal unieke storm gebeurtenistypen voor elke status berekend en worden de resultaten gesorteerd op het aantal unieke stormtypen:

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

uitvoer

In de volgende tabel worden alleen de eerste vijf rijen weergegeven. Als u de volledige uitvoer wilt zien, voert u de query uit.

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

Histogram

In het volgende voorbeeld wordt een histogram met stormgebeurtenissen berekend die langer dan 1 dag stormen hadden. Omdat Duration veel waarden heeft, gebruikt u bin() om de waarden te groeperen 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
Wildvuur 30.00:00:00 11
Hitte 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 operator ten minste één lege group-by-sleutel heeft, is het resultaat ook leeg.

Wanneer de invoer van summarize operator geen lege group-by-sleutel heeft, zijn de standaardwaarden van de aggregaties die worden gebruikt in de summarize Zie Standaardwaarden van aggregatiesvoor 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
Nan 0 0 0 0

Het resultaat van avg_x(x) is NaN vanwege het delen door 0.

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

uitvoer

count_x countif_ 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 telt alleen de waarden die hebben deelgenomen aan de berekening (houdt geen rekening met nullen).

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

Het reguliere aantal telt null-waarden:

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]