percentile(), percentiles() (aggregation function)
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Fungsi ini percentile()
menghitung perkiraan untuk persentil peringkat terdekat yang ditentukan dari populasi yang ditentukan oleh expr.
Keakuratan tergantung pada kepadatan penduduk di wilayah persentil.
percentiles()
berfungsi mirip dengan percentile()
. Namun, percentiles()
dapat menghitung beberapa nilai persentil sekaligus, yang lebih efisien daripada menghitung setiap nilai persentil secara terpisah.
Untuk menghitung persentil tertimbang, lihat percentilesw().
Catatan
Fungsi ini digunakan bersama dengan ringkasan operator.
Sintaks
percentile(
persentil expr,
)
percentiles(
persentil expr,
)
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
expr | string |
✔️ | Ekspresi yang digunakan untuk perhitungan agregasi. |
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 tunggal
Contoh berikut menunjukkan nilai DamageProperty
yang lebih besar dari 95% dari set sampel dan lebih kecil dari 5% dari kumpulan sampel.
StormEvents | summarize percentile(DamageProperty, 95) by State
Hasil
Tabel hasil yang ditampilkan hanya menyertakan 10 baris pertama.
Provinsi | percentile_DamageProperty_95 |
---|---|
ATLANTIK SELATAN | 0 |
FLORIDA | 40000 |
GEORGIA | 143333 |
MISSISSIPPI | 80000 |
SAMOA AMERIKA | 250000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Menghitung beberapa persentil
Contoh berikut menunjukkan nilai DamageProperty
yang dihitung secara bersamaan menggunakan 5, 50 (median) dan 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Hasil
Tabel hasil yang ditampilkan hanya menyertakan 10 baris pertama.
Provinsi | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLANTIK SELATAN | 0 | 0 | 0 |
FLORIDA | 0 | 0 | 40000 |
GEORGIA | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
SAMOA AMERIKA | 0 | 0 | 250000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Mengembalikan persentil sebagai array
Alih-alih mengembalikan nilai dalam kolom individual, gunakan percentiles_array()
fungsi untuk mengembalikan persentil dalam satu kolom jenis array dinamis.
Sintaks
percentiles_array(
persentil expr,
)
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. |
Mengembalikan
Mengembalikan perkiraan untuk kedaluwarsa persentil yang ditentukan dalam grup sebagai kolom tunggal dari jenis array dinamis.
Contoh
Persentil yang dipisahkan koma
Beberapa persentil dapat diperoleh sebagai array dalam satu kolom dinamis, bukan di beberapa kolom seperti dengan persentil().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Hasil
Tabel hasil hanya akan menampilkan 10 baris pertama.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Array dinamis persentil
Persentil untuk percentiles_array
dapat ditentukan dalam array dinamis bilangan bulat atau angka floating-point. Larik harus bersifat konstan tetapi tidak harus literal.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Hasil
Tabel hasil hanya akan menampilkan 10 baris pertama.
SensorName | percentiles_Value | avg_Value |
---|---|---|
sensor-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
sensor-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
sensor-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
sensor-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
sensor-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
sensor-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
sensor-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
sensor-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
sensor-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
sensor-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Persentil peringkat terdekat
Persentil ke-P (0 <P<= 100) dari daftar nilai yang diurutkan, diurutkan dalam urutan naik, adalah nilai terkecil dalam daftar. Persentase P pada data kurang atau sama dengan nilai persentil P-th (dari artikel Wikipedia tentang persentil).
Tentukan persentil 0-th ke anggota terkecil dari populasi.
Catatan
Mengingat sifat perhitungan perkiraan, nilai sebenarnya yang ditampilkan mungkin bukan anggota populasi. Definisi peringkat terdekat berarti P=50 tidak sesuai dengan definisi interpolatif dari median. Ketika mengevaluasi pentingnya perbedaan ini untuk aplikasi tertentu, ukuran populasi dan kesalahan estimasi harus dihitung.
Kesalahan estimasi dalam persentil
Agregat persentil memberikan nilai perkiraan menggunakan T-Digest.
Catatan
- Batas pada kesalahan estimasi bervariasi sesuai nilai persentil yang diminta. Akurasi terbaik adalah di kedua ujung skala [0..100]. Persentil 0 dan 100 adalah nilai minimum dan maksimum yang tepat dari distribusi. Akurasi secara bertahap menurun hingga ke tengah skala. Akurasi paling buruk ada di median and dibatasi sebesar 1%.
- Batas kesalahan dilihat di peringkat, bukan di nilai. Misalkan persentil (X, 50) menampilkan nilai Xm. Perkiraan tersebut menjamin bahwa minimal 49% dan paling banyak 51% dari nilai X kurang atau sama dengan Xm. Tidak ada batasan teoritis pada perbedaan antara Xm dan nilai median sebenarnya dari X.
- Estimasi tersebut terkadang dapat menghasilkan nilai yang tepat tetapi tidak ada kondisi baku untuk menentukan kapan itu akan terjadi.