summarize operátor

Létrehoz egy táblát, amely összesíti a bemeneti tábla tartalmát.

Syntax

T| summarize [ SummarizeParameters ] [[Oszlop=] Összesítés [, ...]] [by [Oszlop=] GroupExpression [, ...]]

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Oszlop string Az eredményoszlop neve. A kifejezésből származtatott név alapértelmezett értéke.
Összesítés string ✔️ Egy olyan aggregációs függvény hívása, mint a count() vagy avg()a, argumentumként oszlopnevekkel.
GroupExpression Skalár ✔️ Skaláris kifejezés, amely hivatkozhat a bemeneti adatokra. A kimenet annyi rekordot tartalmaz, mint az összes csoportkifejezés különböző értékei.
SummarizeParameters string Nulla vagy több szóközzel elválasztott paraméter névérték= formájában, amely a viselkedést vezérli. Lásd a támogatott paramétereket.

Megjegyzés

Ha a bemeneti tábla üres, a kimenet attól függ, hogy a GroupExpressiont használja-e:

  • Ha a GroupExpression nincs megadva, a kimenet egyetlen (üres) sor lesz.
  • Ha a GroupExpression paraméter meg van adva, a kimenetnek nem lesznek sorai.

Támogatott paraméterek

Név Leírás
hint.num_partitions Megadja a fürtcsomópontok lekérdezési terhelésének megosztásához használt partíciók számát. Lásd: elosztási lekérdezés
hint.shufflekey=<key> A shufflekey lekérdezés megosztja a fürtcsomópontok lekérdezési terhelését az adatok particionálására használt kulccsal. Lásd: elosztási lekérdezés
hint.strategy=shuffle A shuffle stratégiai lekérdezés megosztja a lekérdezési terhelést a fürtcsomópontokon, ahol minden csomópont feldolgoz egy adatpartíciót. Lásd: elosztási lekérdezés

Válaszok

A bemeneti sorok a kifejezések azonos értékeivel by rendelkező csoportokba vannak rendezve. Ezután a megadott aggregációs függvények számítása minden csoportra történik, és minden csoporthoz egy sort hoz létre. Az eredmény tartalmazza az by oszlopokat és minden számított összesítéshez legalább egy oszlopot. (Egyes összesítő függvények több oszlopot ad vissza.)

Az eredmény annyi sort tartalmaz, amennyi különböző értékkombinációval by rendelkezik (ami nulla is lehet). Ha nincsenek megadva csoportkulcsok, az eredmény egyetlen rekorddal rendelkezik.

A numerikus értékek tartományai közötti összegzéshez használja a használatával bin() a tartományokat az értékek diszkrétsé skálázásához.

Megjegyzés

  • Bár tetszőleges kifejezéseket adhat meg az összesítő és a csoportosítási kifejezésekhez is, hatékonyabb egyszerű oszlopneveket használni, vagy numerikus oszlopokra alkalmazni bin() .
  • A datetime oszlopok automatikus óránkénti intervallumai már nem támogatottak. Használjon explicit dobozolást. Például: summarize by bin(timestamp, 1h).

Az összesítések alapértelmezett értékei

Az alábbi táblázat az aggregációk alapértelmezett értékeit foglalja össze:

Operátor Alapértelmezett érték
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() üres dinamikus tömb ([])
Minden más null

Megjegyzés

Ha ezeket az összesítéseket null értékeket tartalmazó entitásokra alkalmazza, a rendszer figyelmen kívül hagyja a null értékeket, és nem veszi figyelembe a számítást. Példákért lásd: Az alapértelmezett értékek összesítése.

Példák

Összegezze az árat gyümölcsök és szállítók szerint.

Egyedi kombináció

A következő lekérdezés határozza meg, hogy milyen egyedi kombinációi State vannak és EventType vannak olyan viharok esetén, amelyek közvetlen sérülést okoztak. Nincsenek aggregációs függvények, csak csoportosítási kulcsok. A kimenet csak az eredmények oszlopait jeleníti meg.

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

Kimenet

Az alábbi táblázatban csak az első 5 sor látható. A teljes kimenet megtekintéséhez futtassa a lekérdezést.

Állapot EventType
TEXAS Zivatar szél
TEXAS Villámárviz
TEXAS Téli időjárás
TEXAS Magas szél
TEXAS Árvíz
... ...

Minimális és maximális időbélyeg

Megkeresi a hawaii esőzések minimális és legnagyobb esőzéseit. Nincs csoportosítási záradék, ezért csak egy sor van a kimenetben.

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

Kimenet

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

Eltérők száma

Hozzon létre egy sort az egyes kontinensekhez, amely megjeleníti azoknak a városoknak a számát, amelyekben a tevékenységek történnek. Mivel a "kontinensnek" kevés értéke van, nincs szükség csoportosítási függvényre a "by" záradékban:

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

Kimenet

Az alábbi táblázatban csak az első 5 sor látható. A teljes kimenet megtekintéséhez futtassa a lekérdezést.

Állapot TypesOfStorms
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GRÚZIA 24
ILLINOIS 23
... ...

Hisztogram

Az alábbi példa egy hisztogramos viharesemény-típusokat számít ki, amelyek 1 napnál hosszabb ideig tartó viharokkal rendelkeztek. Mivel Duration sok érték van, az bin() értékeket 1 napos intervallumokba csoportosíthatja.

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

Kimenet

EventType Hossz EventCount
Aszály 30.00:00:00 1646
Futótűz 30.00:00:00 11
30.00:00:00 14
Árvíz 30.00:00:00 20
Nagy eső 29.00:00:00 42
... ... ...

Az alapértelmezett értékek összesítése

Ha az operátor bemenete summarize legalább egy üres csoportonkénti kulccsal rendelkezik, az eredmény is üres.

Ha az operátor bemenete summarize nem rendelkezik üres csoportosítási kulccsal, az eredmény az aggregációk alapértelmezett értékeinek eredménye. summarize További információ: Az összesítések alapértelmezett értékei.

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)

Kimenet

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

Ennek az eredménye avg_x(x) a NaN 0-ra való osztásnak köszönhető.

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

Kimenet

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

Kimenet

set_x list_x
[] []

Az összesített avg összegzi az összes nem null értéket, és csak azokat számlálja meg, amelyek részt vettek a számításban (nem veszi figyelembe a null értékeket).

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

Kimenet

sum_y avg_y
15 5

A normál szám null értékeket fog megszámolni:

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

Kimenet

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)

Kimenet

set_y set_y1
[5.0] [5.0]