Fungsi PERCENTILE_DISC menghitung persentil tertentu dengan mengurutkan nilai-nilai dalam kolom yang ditentukan secara ascending dan mengembalikan nilai pertama yang memiliki distribusi kumulatif lebih besar dari atau sama dengan persentil yang ditentukan.
Format perintah
-- Hitung nilai persentil tertentu.
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])
-- Hitung nilai persentil dalam suatu window.
PERCENTILE_DISC(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])Parameter
col_name: Wajib diisi. Kolom yang berisi nilai-nilai yang dapat diurutkan.
percentile: Wajib diisi. Persentil yang akan dihitung. Nilainya harus berupa konstanta DOUBLE dalam rentang [0, 1].
isIgnoreNull: Opsional. Menentukan apakah nilai NULL diabaikan. Parameter ini merupakan konstanta BOOLEAN dengan nilai default TRUE. Jika diatur ke FALSE, nilai NULL diperlakukan sebagai nilai minimum selama pengurutan.
partition_clause dan orderby_clause: Untuk informasi lebih lanjut, lihat Window functions.
Nilai kembali
Mengembalikan nilai persentil yang dihitung. Tipe data dari nilai kembali sama dengan tipe data kolom input col_name.
Contoh
Contoh 1: Hitung nilai persentil dalam suatu window dan abaikan nilai NULL.
SELECT x, PERCENTILE_DISC(x, 0) OVER() AS min, PERCENTILE_DISC(x, 0.5) OVER() AS median, PERCENTILE_DISC(x, 1) OVER() AS max FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x); -- Hasil berikut dikembalikan. +------------+------------+------------+------------+ | x | min | median | max | +------------+------------+------------+------------+ | c | a | b | c | | NULL | a | b | c | | b | a | b | c | | a | a | b | c | +------------+------------+------------+------------+Contoh 2: Hitung nilai persentil dalam suatu window dan perlakukan nilai NULL sebagai nilai minimum selama pengurutan.
SELECT x, PERCENTILE_DISC(x, 0, false) OVER() AS min, PERCENTILE_DISC(x, 0.5, false) OVER() AS median, PERCENTILE_DISC(x, 1, false) OVER() AS max FROM VALUES('c'),(NULL),('b'),('a') AS tbl(x); -- Hasil berikut dikembalikan. +------------+------------+------------+------------+ | x | min | median | max | +------------+------------+------------+------------+ | c | NULL | a | c | | NULL | NULL | a | c | | b | NULL | a | c | | a | NULL | a | c | +------------+------------+------------+------------+
Fungsi terkait
PERCENTILE_DISC merupakan fungsi agregasi atau fungsi window.
Untuk informasi lebih lanjut tentang fungsi yang melakukan agregasi pada multiple input record, seperti menghitung nilai rata-rata, lihat Aggregate functions.
Untuk informasi lebih lanjut tentang fungsi yang melakukan operasi pada data dalam window tertentu, seperti menjumlahkan data atau mengurutkan nilai, lihat Window functions.