Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Applies to: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Menghasilkan tabel yang mengagregasi isi tabel input.
Syntax
T| summarize [ SummarizeParameters ] [[Column=] Aggregation [, ...]] [by [Column=] GroupExpression [, ...]]
Learn more about syntax conventions.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Column | string |
Nama untuk kolom hasil. Default-nya adalah nama yang berasal dari ekspresi. | |
| Aggregation | string |
✔️ | A call to an aggregation function such as count() or avg(), with column names as arguments. |
| GroupExpression | scalar | ✔️ | Ekspresi skalar yang dapat mereferensikan data input. Output memiliki rekaman sebanyak ada nilai yang berbeda dari semua ekspresi grup. |
| SummarizeParameters | string |
Zero or more space-separated parameters in the form of Name=Value that control the behavior. See supported parameters. |
Note
When the input table is empty, the output depends on whether GroupExpression is used:
- If GroupExpression isn't provided, the output is a single (empty) row.
- If GroupExpression is provided, the output has no rows.
Supported parameters
| Name | Description |
|---|---|
hint.num_partitions |
Menentukan jumlah partisi yang digunakan untuk membagikan beban kueri pada node kluster. See shuffle query |
hint.shufflekey=<key> |
Kueri shufflekey membagikan muatan kueri pada node kluster, menggunakan kunci ke data partisi. See shuffle query |
hint.strategy=shuffle |
Kueri shuffle strategi berbagi beban kueri pada node kluster, di mana setiap simpul memproses satu partisi data. See shuffle query |
Returns
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 ada kombinasi by nilai yang berbeda (yang mungkin 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.
Note
- 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 | Default value |
|---|---|
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 ([]) |
| All others | nol |
Note
Saat menerapkan agregat ini ke entitas yang menyertakan nilai null, nilai null diabaikan dan tidak memperhitungkan perhitungan. See Examples.
Examples
The examples in this article use publicly available tables in the help cluster, such as the
StormEventstable in the Samples database.
The examples in this article use publicly available tables, such as the
Weathertable in the Weather analytics sample gallery. Anda mungkin perlu mengubah nama tabel dalam contoh kueri agar sesuai dengan tabel di ruang kerja Anda.
Contoh berikut menentukan kombinasi State unik dan EventType ada untuk badai yang mengakibatkan cedera langsung. Tidak ada fungsi agregasi, hanya tombol kelompokkan menurut. Output hanya menampilkan kolom untuk hasil tersebut.
StormEvents
| where InjuriesDirect > 0
| summarize by State, EventType
Output
Tabel berikut ini hanya memperlihatkan 5 baris pertama. Untuk melihat output lengkap, jalankan kueri.
| State | EventType |
|---|---|
| TEXAS | Thunderstorm Wind |
| TEXAS | Flash Flood |
| TEXAS | Winter Weather |
| TEXAS | High Wind |
| TEXAS | Flood |
| ... | ... |
Contoh berikut 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)
Output
| Min | Max |
|---|---|
| 01:08:00 | 11:55:00 |
Contoh 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
Output
Tabel berikut ini hanya memperlihatkan 5 baris pertama. Untuk melihat output lengkap, jalankan kueri.
| State | TypesOfStorms |
|---|---|
| TEXAS | 27 |
| CALIFORNIA | 26 |
| PENNSYLVANIA | 25 |
| GEORGIA | 24 |
| ILLINOIS | 23 |
| ... | ... |
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
Output
| EventType | Length | EventCount |
|---|---|---|
| Drought | 30.00:00:00 | 1646 |
| Wildfire | 30.00:00:00 | 11 |
| Heat | 30.00:00:00 | 14 |
| Flood | 30.00:00:00 | 20 |
| Heavy Rain | 29.00:00:00 | 42 |
| ... | ... | ... |
Contoh berikut menunjukkan nilai default agregat saat tabel input kosong. Operator summarize digunakan untuk menghitung nilai default agregat.
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)
Output
| 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 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| BkA | 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)
Output
| count_x | countif_ | dcount_x | dcountif_x |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
datatable(x:long)[]
| summarize make_set(x), make_list(x)
Output
| set_x | list_x |
|---|---|
| [] | [] |
Agregat rata-rata hanya menjumlahkan nilai non-null dan hanya menghitung nilai-nilai tersebut dalam perhitungannya, mengabaikan null apa pun.
range x from 1 to 4 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize sum(y), avg(y)
Output
| sum_y | avg_y |
|---|---|
| 15 | 5 |
Fungsi hitungan standar mencakup nilai null dalam hitungannya:
range x from 1 to 2 step 1
| extend y = iff(x == 1, real(null), real(5))
| summarize count(y)
Output
| 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)
Output
| set_y | set_y1 |
|---|---|
| [5.0] | [5.0] |