percentilew(), percentilesw() (fungsi agregasi)
Fungsi ini percentilew()
menghitung perkiraan tertimbang untuk persentil peringkat terdekat yang ditentukan dari populasi yang ditentukan oleh expr. percentilesw()
berfungsi mirip dengan percentilew()
. Namun, percentilesw()
dapat menghitung beberapa nilai persentil tertimbang sekaligus, yang lebih efisien daripada menghitung setiap nilai persentil tertimbang secara terpisah.
Persentil tertimbang menghitung persentil dalam himpunan data dengan memberikan bobot pada setiap nilai dalam himpunan data input. Dalam metode ini, setiap nilai dianggap diulang beberapa kali sama dengan beratnya, yang kemudian digunakan untuk menghitung persentil. Dengan memberikan lebih penting untuk nilai tertentu, persentil tertimbang memberikan cara untuk menghitung persentil dengan cara "tertimbang".
Untuk menghitung persentil yang tidak tertahankan, lihat persentil().
Catatan
Fungsi ini digunakan bersama dengan ringkasan operator.
Sintaks
percentilew(
persentil expr,
weightExpr,
)
percentilesw(
persentil expr,
weightExpr,
)
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
expr | string |
✔️ | Ekspresi yang digunakan untuk perhitungan agregasi. |
weightExpr | long |
✔️ | Bobot untuk memberikan setiap nilai. |
persentil | int atau long | ✔️ | Konstanta yang menentukan persentil. |
persentil | int atau long | ✔️ | Satu atau beberapa persentil yang dipisahkan koma. |
Mengembalikan
Mengembalikan tabel dengan perkiraan kedaluwarsa persentil yang ditentukan dalam grup, masing-masing dalam kolom terpisah.
Catatan
Untuk mengembalikan persentil dalam satu kolom, lihat Mengembalikan persentil sebagai array.
Contoh
Menghitung persentil tertimbang
Anggaplah Anda berulang kali mengukur waktu (Durasi) yang dibutuhkan untuk menyelesaikan suatu tindakan. Daripada mencatat setiap nilai pengukuran, catat setiap nilai Durasi, yang dibulatkan menjadi 100 mdtk, dan frekuensi kemunculan nilai yang dibulatkan (BucketSize).
Gunakan summarize percentilesw(Duration, BucketSize, ...)
untuk menghitung persentil tertentu dengan cara yang "terukur". Perlakukan setiap nilai Durasi seolah-olah waktu tersebut diulang BucketSize kali dalam input, tanpa benar-benar perlu mematerialisasi catatan tersebut.
Contoh berikut menunjukkan persentil tertimbang.
Menggunakan serangkaian nilai latensi berikut dalam milidetik: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }
.
Untuk mengurangi bandwidth dan penyimpanan, lakukan pra-agregasi ke wadah berikut: { 10, 20, 30, 40, 50, 100 }
. Hitung jumlah peristiwa di setiap bucket untuk membuat tabel berikut:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
Tabel menampilkan:
- Delapan peristiwa dalam bucket 10 mdtk (sesuai dengan subset
{ 1, 1, 2, 2, 2, 5, 7, 7 }
) - Enam peristiwa dalam bucket 20 mdtk (sesuai dengan subset
{ 12, 12, 15, 15, 15, 18 }
) - Tiga peristiwa dalam bucket 30 mdtk (sesuai dengan subset
{ 21, 22, 26 }
) - Satu peristiwa dalam bucket 40 mdtk (sesuai dengan subset
{ 35 }
)
Saat ini, data asli tidak lagi tersedia. Hanya jumlah peristiwa di setiap bucket. Untuk menghitung persentil dari data ini, gunakan fungsi percentilesw()
.
Untuk persentil 50, 75, dan 99,9, gunakan kueri berikut:
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9)
Hasil
percentile_LatencyBucket_50 | percentile_LatencyBucket_75 | percentile_LatencyBucket_99_9 |
---|---|---|
20 | 20 | 40 |
Mengembalikan persentil sebagai array
Alih-alih mengembalikan nilai dalam kolom individual, gunakan percentilesw_array()
fungsi untuk mengembalikan persentil dalam satu kolom jenis array dinamis.
Sintaks
percentilesw_array(
persentil expr,
weightExpr,
)
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
expr | string |
✔️ | Ekspresi yang digunakan untuk perhitungan agregasi. |
persentil | int, long, atau dynamic | ✔️ | Satu atau beberapa persentil yang dipisahkan koma atau array dinamis persentil. Setiap persentil dapat berupa bilangan bulat atau nilai panjang. |
weightExpr | long |
✔️ | Bobot untuk memberikan setiap nilai. |
Mengembalikan
Mengembalikan perkiraan untuk kedaluwarsa persentil yang ditentukan dalam grup sebagai kolom tunggal dari jenis array dinamis.
Contoh
Persentil yang dipisahkan koma
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, 50, 75, 99.9)
Hasil
percentile_LatencyBucket |
---|
[20, 20, 40] |
Array dinamis persentil
let latencyTable = datatable (ReqCount:long, LatencyBucket:long)
[
8, 10,
6, 20,
3, 30,
1, 40
];
latencyTable
| summarize percentilesw_array(LatencyBucket, ReqCount, dynamic([50, 75, 99.9]))
Hasil
percentile_LatencyBucket |
---|
[20, 20, 40] |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk