operator summarize
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Menghasilkan tabel yang mengagregasi isi tabel input.
Sintaks
T | summarize
[ SummarizeParameters ] [[Column =
] Aggregation [,
...]] [by
[Column =
] GroupExpression [,
...]]
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
Kolom | string |
Nama untuk kolom hasil. Default-nya adalah nama yang berasal dari ekspresi. | |
Agregasi | string |
✔️ | Panggilan ke fungsi agregasi seperti count() atau avg() , dengan nama kolom sebagai argumen. |
GroupExpression | skalar | ✔️ | Ekspresi skalar yang dapat mereferensikan data input. Output akan memiliki banyak rekaman karena terdapat nilai yang berbeda dari semua ekspresi grup. |
SummarizeParameters | string |
Nol atau lebih parameter yang dipisahkan spasi dalam bentuk Nilai Nama = yang mengontrol perilaku. Lihat parameter yang didukung. |
Catatan
Ketika tabel input kosong, output akan bergantung pada penggunaan GroupExpression:
- Jika GroupExpression tidak disediakan, output akan menampilkan baris tunggal (kosong).
- Jika GroupExpression disediakan, output tidak akan menampilkan baris tunggal.
Parameter yang didukung
Nama | Deskripsi |
---|---|
hint.num_partitions |
Menentukan jumlah partisi yang digunakan untuk membagikan beban kueri pada node kluster. Lihat kueri acak |
hint.shufflekey=<key> |
Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. Lihat kueri acak |
hint.strategy=shuffle |
Kueri strategi shuffle membagikan muatan kueri pada node kluster, di mana setiap simpul akan memproses satu partisi data. Lihat kueri acak |
Mengembalikan
Baris input disusun ke dalam beberapa grup yang memiliki nilai ekspresi by
yang sama. Kemudian fungsi agregasi yang ditentukan dihitung di setiap grup, menghasilkan baris untuk setiap grup. Hasilnya berisi kolom by
serta setidaknya satu kolom untuk setiap agregat yang dihitung. (Beberapa fungsi agregasi mengembalikan beberapa kolom.)
Hasilnya memiliki baris sebanyak kombinasi nilai by
yang berbeda (dapat berupa nol). Jika tidak ada kunci grup yang disediakan, hasilnya akan memiliki satu rekaman.
Untuk meringkas rentang nilai numerik, gunakan bin()
untuk mengurangi rentang ke nilai diskrit.
Catatan
- Meskipun Anda dapat memberikan ekspresi arbitrer untuk ekspresi agregasi dan pengelompokan, akan lebih efisien untuk menggunakan nama kolom sederhana, atau menerapkan
bin()
ke kolom numerik. - Bin per jam otomatis untuk kolom tanggalwaktu tidak lagi didukung. Sebagai gantinya, gunakan binning eksplisit. Contohnya,
summarize by bin(timestamp, 1h)
.
Nilai default agregasi
Tabel berikut meringkas nilai default agregasi:
Operator | Nilai default |
---|---|
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() |
array dinamis kosong ([]) |
Semua lainnya | nihil |
Catatan
Saat menerapkan agregat ini ke entitas yang menyertakan nilai null, nilai null diabaikan dan tidak memperhitungkan perhitungan. Misalnya, lihat Agregat nilai default.
Contoh
Kombinasi unik
Kueri berikut menentukan kombinasi State
unik dan EventType
ada untuk badai yang mengakibatkan cedera langsung. Tidak ada fungsi agregasi, hanya tombol kelompokkan menurut. Output hanya akan menampilkan kolom untuk hasil tersebut.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Hasil
Tabel berikut ini hanya memperlihatkan 5 baris pertama. Untuk melihat output lengkap, jalankan kueri.
Status | EventType |
---|---|
TEXAS | Angin Badai Petir |
TEXAS | Banjir Bandang |
TEXAS | Cuaca Musim Dingin |
TEXAS | Angin Kencang |
TEXAS | Banjir |
... | ... |
Stempel waktu minimum dan maksimum
Menemukan badai hujan lebat minimum dan maksimum di Hawaii. Tidak ada klausul group-by, jadi hanya ada satu baris dalam output.
StormEvents
| where State == "HAWAII" and EventType == "Heavy Rain"
| project Duration = EndTime - StartTime
| summarize Min = min(Duration), Max = max(Duration)
Hasil
Min | Maks |
---|---|
01:08:00 | 11:55:00 |
Hitungan jelas
Kueri berikut menghitung jumlah jenis peristiwa badai unik untuk setiap status dan mengurutkan hasil berdasarkan jumlah jenis badai unik:
StormEvents
| summarize TypesOfStorms=dcount(EventType) by State
| sort by TypesOfStorms
Hasil
Tabel berikut ini hanya memperlihatkan 5 baris pertama. Untuk melihat output lengkap, jalankan kueri.
Status | TypeOfStorms |
---|---|
TEXAS | 27 |
CALIFORNIA | 26 |
PENNSYLVANIA | 25 |
GEORGIA | 24 |
ILLINOIS | 23 |
... | ... |
Histogram
Contoh berikut menghitung jenis peristiwa badai histogram yang memiliki badai yang berlangsung lebih dari 1 hari. Karena Duration
memiliki banyak nilai, gunakan bin()
untuk mengelompokkan nilainya ke dalam interval 1 hari.
StormEvents
| project EventType, Duration = EndTime - StartTime
| where Duration > 1d
| summarize EventCount=count() by EventType, Length=bin(Duration, 1d)
| sort by Length
Hasil
EventType | Panjang | EventCount |
---|---|---|
Kekeringan | 30.00:00:00 | 1646 |
Wildfire | 30.00:00:00 | 11 |
Panas | 30.00:00:00 | 14 |
Banjir | 30.00:00:00 | 20 |
Hujan Lebat | 29.00:00:00 | 42 |
... | ... | ... |
Mengagregasi nilai default
Ketika input summarize
operator memiliki setidaknya satu kunci group-by kosong, hasilnya juga kosong.
Saat input summarize
operator tidak memiliki kunci kelompok menurut kosong, hasilnya adalah nilai default agregat yang digunakan dalam summarize
Untuk informasi selengkapnya, lihat Nilai default agregasi.
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)
Hasil
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 |
Hasilnya avg_x(x)
adalah NaN
karena pembagian dengan 0.
datatable(x:long)[]
| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)
Hasil
count_x | countif_ | dcount_x | dcountif_x |
---|---|---|---|
0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Hasil
set_x | list_x |
---|---|
[] | [] |
Rata-rata agregat menjumlahkan semua non-null dan hanya menghitung yang berpartisipasi dalam perhitungan (tidak akan memperhitungkan null).
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Hasil
sum_y | avg_y |
---|---|
15 | 5 |
Penghitungan reguler yang akan menghitung null:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Hasil
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)
Hasil
set_y | set_y1 |
---|---|
[5.0] | [5.0] |