Delen via


summarize operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Syntax

T| summarize [ SummarizeParameters ] [[Column=] Aggregation [, ...]] [by [Column=] GroupExpression [, ...]]

Learn more about syntax conventions.

Parameters

Name Type Required Description
Column string De naam voor de resultaatkolom. Standaard ingesteld op een naam die is afgeleid van de expressie.
Aggregation string ✔️ A call to an aggregation function such as count() or avg(), with column names as arguments.
GroupExpression scalar ✔️ Een scalaire expressie die naar de invoergegevens kan verwijzen. De uitvoer heeft net zoveel records als er afzonderlijke waarden van alle groepsexpressies zijn.
SummarizeParameters string Zero or more space-separated parameters in the form of Name=Value that control the behavior. See supported parameters.

Note

When the input table is empty, the output depends on whether GroupExpression is used:

  • If GroupExpression isn't provided, the output is a single (empty) row.
  • If GroupExpression is provided, the output has no rows.

Supported parameters

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

Returns

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.

Note

  • 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 bins 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:

Operator Default value
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 ([])
All others null

Note

Wanneer u deze aggregaties toepast op entiteiten die null-waarden bevatten, worden de null-waarden genegeerd en worden ze niet meegenomen in de berekening. See Examples.

Examples

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Mogelijk moet u de tabelnaam in de voorbeeldquery wijzigen zodat deze overeenkomt met de tabel in uw werkruimte.

In het volgende voorbeeld wordt bepaald welke unieke combinaties en StateEventType stormen er zijn die tot directe letsels 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

Output

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

State EventType
TEXAS Thunderstorm Wind
TEXAS Flash Flood
TEXAS Winter Weather
TEXAS High Wind
TEXAS Flood
... ...

In het volgende voorbeeld worden de minimale en maximale zware regenstormen in Hawaï gevonden. 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)

Output

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

In het volgende voorbeeld 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

Output

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

State TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 23
... ...

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

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
Heavy Rain 29.00:00:00 42
... ... ...

In het volgende voorbeeld ziet u de standaardwaarden van aggregaties wanneer de invoertabel leeg is. De summarize operator wordt gebruikt om de standaardwaarden van de aggregaties te berekenen. 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)

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
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)

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
[] []

De gemiddelde statistische waarde telt alleen de niet-null-waarden op en telt alleen die waarden in de berekening, waarbij null-waarden worden genegeerd.

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

De functie standaardaantal bevat null-waarden in het aantal:

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]