Fungsi PERCENTILE_CONT menghitung persentil kontinu menggunakan interpolasi linear. Fungsi ini mengurutkan nilai-nilai dalam suatu kolom secara ascending dan mengembalikan nilai hasil interpolasi untuk percentile yang ditentukan.
Sintaksis
-- Sebagai fungsi agregat
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>])
-- Sebagai window function
PERCENTILE_CONT(<col_name>, DOUBLE <percentile>[, BOOLEAN <isIgnoreNull>]) OVER ([partition_clause] [orderby_clause])Parameter
col_name: Wajib diisi. Kolom bertipe DOUBLE atau DECIMAL.
percentile: Wajib diisi. Konstanta DOUBLE dalam rentang [0, 1].
isIgnoreNull: Opsional. Konstanta BOOLEAN yang menentukan apakah nilai NULL diabaikan. Nilai default-nya adalah TRUE. Jika diatur ke FALSE, nilai NULL diperlakukan sebagai nilai minimum.
partition_clause dan orderby_clause: Lihat Window Functions untuk detail selengkapnya.
Nilai kembalian
Mengembalikan persentil yang dihitung sebagai nilai DOUBLE.
Contoh
Contoh 1: Hitung persentil kontinu dalam suatu window dengan mengabaikan nilai NULL.
SELECT PERCENTILE_CONT(x, 0) OVER() AS min, PERCENTILE_CONT(x, 0.01) OVER() AS percentile1, PERCENTILE_CONT(x, 0.5) OVER() AS median, PERCENTILE_CONT(x, 0.9) OVER() AS percentile90, PERCENTILE_CONT(x, 1) OVER() AS max FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1; -- Hasil berikut dikembalikan: +------------+-------------+------------+--------------+------------+ | min | percentile1 | median | percentile90 | max | +------------+-------------+------------+--------------+------------+ | 0.0 | 0.03 | 1.5 | 2.7 | 3.0 | +------------+-------------+------------+--------------+------------+Contoh 2: Hitung persentil kontinu dalam suatu window dengan memperlakukan nilai NULL sebagai nilai minimum.
SELECT PERCENTILE_CONT(x, 0, false) OVER() AS min, PERCENTILE_CONT(x, 0.01, false) OVER() AS percentile1, PERCENTILE_CONT(x, 0.5, false) OVER() AS median, PERCENTILE_CONT(x, 0.9, false) OVER() AS percentile90, PERCENTILE_CONT(x, 1, false) OVER() AS max FROM VALUES(0D),(3D),(NULL),(1D),(2D) AS tbl(x) LIMIT 1; -- Hasil berikut dikembalikan: +------------+-------------+------------+--------------+------------+ | min | percentile1 | median | percentile90 | max | +------------+-------------+------------+--------------+------------+ | NULL | 0.0 | 1.0 | 2.6 | 3.0 | +------------+-------------+------------+--------------+------------+
Fungsi terkait
PERCENTILE_CONT dapat digunakan sebagai fungsi agregat atau window function.
Untuk fungsi lain yang mengagregasi data dari beberapa record, lihat Aggregate Functions.
Untuk fungsi lain yang melakukan perhitungan pada window baris, seperti penjumlahan dan peringkat, lihat Window Functions.