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
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 |
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 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] |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: