All Products
Search
Document Center

MaxCompute:PERCENTILE_DISC

Last Updated:Nov 28, 2025

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.