Aggregate
PostgreSQL
PERCENTILE_DISC
Menghitung percentile diskrit dari data. Mengembalikan nilai aktual dari dataset (tidak diinterpolasi). Berbeda dengan PERCENTILE_CONT yang menginterpolasi.
Tipe hasil:
same as inputSyntax
SQL
PERCENTILE_DISC(fraction) WITHIN GROUP (ORDER BY expression)Parameter
fractionnumericwajib
Nilai percentile antara 0 dan 1
expressionany orderablewajib
Kolom yang akan dihitung percentilenya
Contoh Penggunaan
Median Diskrit
SQL
1 SELECT 2 PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY rating) AS median_rating 3 FROM reviews;
Menghitung median rating (nilai aktual dari data).
Hasil
| median_rating |
|---|
| 4 |
Perbandingan CONT vs DISC
SQL
1 SELECT 2 PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY score) AS cont_median, 3 PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY score) AS disc_median 4 FROM ( 5 VALUES (1), (2), (3), (4) 6 ) AS t(score);
CONT menginterpolasi (2.5), DISC mengambil nilai aktual (2).
Hasil
| cont_median | disc_median |
|---|---|
| 2.5 | 2 |
Top 10% Performers
SQL
1 SELECT * 2 FROM employees 3 WHERE performance_score >= ( 4 SELECT PERCENTILE_DISC(0.9) 5 WITHIN GROUP (ORDER BY performance_score) 6 FROM employees 7 );
Mencari karyawan dengan skor di top 10%.