Aggregate

PERCENTILE_DISC

PostgreSQLPostgreSQL

Menghitung percentile diskrit dari data. Mengembalikan nilai aktual dari dataset (tidak diinterpolasi). Berbeda dengan PERCENTILE_CONT yang menginterpolasi.

Tipe hasil: same as input

Syntax

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
1SELECT
2 PERCENTILE_DISC(0.5) WITHIN GROUP (ORDER BY rating) AS median_rating
3FROM reviews;

Menghitung median rating (nilai aktual dari data).

Hasil
median_rating
4

Perbandingan CONT vs DISC

SQL
1SELECT
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
4FROM (
5 VALUES (1), (2), (3), (4)
6) AS t(score);

CONT menginterpolasi (2.5), DISC mengambil nilai aktual (2).

Hasil
cont_mediandisc_median
2.52

Top 10% Performers

SQL
1SELECT *
2FROM employees
3WHERE 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%.