összesítő operátor
A következőkre vonatkozik: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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.
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 |
Hő | 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] |