Megosztás a következőn keresztül:


összesítő operátor

A következőkre vonatkozik: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Szintaxis

T| summarize [ SummarizeParameters ] [[Column=] Összesítési [, ...]] [by [oszlop=] GroupExpression [, ...]]

További információ szintaxiskonvenciákról.

Paraméterek

Név Típus Szükséges Leírás
oszlop string Az eredményoszlop neve. A kifejezésből származtatott név alapértelmezett értéke.
összesítési string ✔️ Egy összesítő függvény meghívása, például count() vagy avg(), argumentumként oszlopnevekkel.
GroupExpression skaláris ✔️ 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 térelválasztó paraméter Név=Érték formájában, amelyek szabályozzák a viselkedést. Lásd támogatott paraméterek.

Jegyzet

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

  • Ha GroupExpression nincs megadva, a kimenet egyetlen (üres) sor lesz.
  • Ha GroupExpression van megadva, a kimenetnek nincsenek 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 egy kulcs használatával az adatok particionálásához. 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 feldolgozni fogja az adatok egy partícióját. Lásd elosztási lekérdezés

Visszatér

A bemeneti sorok olyan csoportokba vannak rendezve, amelyek a by kifejezések azonos értékeit képezik. Ezután a megadott összesítési függvények minden csoportra ki vannak számítva, és minden csoporthoz egy sort állítanak elő. Az eredmény tartalmazza a by oszlopokat, valamint minden számított összesítéshez legalább egy oszlopot. (Egyes összesítési függvények több oszlopot ad vissza.)

Az eredmény annyi sort tartalmaz, mint by értékek különböző kombinációi (ami lehet nulla). Ha nincsenek megadva csoportkulcsok, az eredmény egyetlen rekordot eredményez.

A számértékek tartományainak összegzéséhez használja a bin() a tartományokat a különálló értékekre.

Jegyzet

  • Bár tetszőleges kifejezéseket is megadhat az összesítő és a csoportosítási kifejezésekhez, hatékonyabb az egyszerű oszlopnevek használata, vagy bin() alkalmazása numerikus oszlopokra.
  • A datetime oszlopok automatikus óránkénti tárolói már nem támogatottak. Használjon explicit binninget. Például summarize by bin(timestamp, 1h).

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

Az alábbi táblázat az összesítések 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 nulla

Jegyzet

Ha ezeket az aggregátumokat null értékeket tartalmazó entitásokra alkalmazza, a null értékek figyelmen kívül lesznek hagyva, és nem számítanak bele a számításba. Példák: Az alapértelmezett értékek összesítése.

Példák

Az ebben a szakaszban szereplő példa bemutatja, hogyan használható a szintaxis az első lépésekhez.

A cikkben szereplő példák a nyilvánosan elérhető tábláit használják a fürt, például a Minták adatbázis StormEvents tábláját.

A cikkben szereplő példák nyilvánosan elérhető táblákat használnak, például a Weather Analytics StormEvents táblát, mintaadatokat.

Gyümölcs és szállító szerinti ár összegzése.

Egyedi kombináció

Az alábbi lekérdezés meghatározza, hogy a State és a EventType milyen egyedi kombinációi vannak a közvetlen sérülést eredményező viharok esetén. Nincsenek összesítési függvények, csak csoportonkénti kulcsok. A kimenet csak az eredmények oszlopait jeleníti meg.

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

kimeneti

Az alábbi táblázat csak az első 5 sort jeleníti meg. A teljes kimenet megtekintéséhez futtassa a lekérdezést.

Állam EventType
TEXAS Zivatar szél
TEXAS Villámárvizek
TEXAS Téli időjárás
TEXAS Orkán
TEXAS Árvíz
... ...

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

Megkeresi a minimális és maximális heves esőzések Hawaii. 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)

kimeneti

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

Eltérő darabszám

Az alábbi lekérdezés kiszámítja az egyes állapotok egyedi viharesemény-típusainak számát, és az eredményeket az egyedi vihartípusok száma alapján rendezi:

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

kimeneti

Az alábbi táblázat csak az első 5 sort jeleníti meg. A teljes kimenet megtekintéséhez futtassa a lekérdezést.

Állam TypesOfStorms
TEXAS 27
KALIFORNIA 26
PENNSYLVANIA 25
GRÚZIA 24
ILLINOIS 23
... ...

Hisztogram

Az alábbi példa egy hisztogramos viharesemény-típust számít ki, amely 1 napnál hosszabb ideig tartó viharokkal rendelkezett. Mivel Duration számos értékkel rendelkezik, az bin() használatával csoportosíthatja az értékeit 1 napos intervallumokba.

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

kimeneti

EventType Hosszúság 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 summarize operátor bemenete legalább egy üres csoportonkénti kulccsal rendelkezik, az eredmény is üres.

Ha summarize operátor bemenete nem tartalmaz üres csoportosítási kulcsot, az eredmény az summarize használt összesítések alapértelmezett értékei. További információt 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)

kimeneti

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

A avg_x(x) eredménye 0-ra való osztás miatt NaN.

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

kimeneti

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

kimeneti

set_x list_x
[] []

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

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

kimeneti

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)

kimeneti

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)

kimeneti

set_y set_y1
[5.0] [5.0]