Window

NTILE

PostgreSQLPostgreSQL

Membagi data menjadi n bucket/grup dengan jumlah anggota seimbang. Berguna untuk analisis quartile, percentile, dan segmentasi data.

Tipe hasil: integerDiperbarui: 16 Mei 2026

Syntax

SQL
NTILE(num_buckets) OVER (
  [PARTITION BY partition_expression]
  ORDER BY sort_expression
)

Parameter

num_bucketsintegerwajib

Jumlah bucket/grup yang diinginkan

ORDER BYexpressionwajib

Menentukan urutan pembagian

PARTITION BYexpressionopsional

Membagi data menjadi grup terpisah

Contoh Penggunaan

Membagi ke Quartile

SQL
1SELECT
2 name,
3 salary,
4 NTILE(4) OVER (ORDER BY salary) AS quartile
5FROM employees;

Membagi karyawan ke 4 quartile berdasarkan gaji.

Hasil
namesalaryquartile
Andi50000001
Budi70000001
Citra90000002
Dewi120000003
... 1 baris lainnya

Segmentasi Customer

SQL
1SELECT
2 customer_id,
3 total_purchases,
4 CASE NTILE(3) OVER (ORDER BY total_purchases DESC)
5 WHEN 1 THEN Gold
6 WHEN 2 THEN Silver
7 WHEN 3 THEN Bronze
8 END AS tier
9FROM customer_stats;

Membuat tier customer berdasarkan pembelian.

Hasil
customer_idtotal_purchasestier
10110000000Gold
1025000000Silver
1031000000Bronze

Decile Analysis

SQL
1SELECT
2 NTILE(10) OVER (ORDER BY score) AS decile,
3 MIN(score) AS min_score,
4 MAX(score) AS max_score,
5 COUNT(*) AS count
6FROM test_results
7GROUP BY decile
8ORDER BY decile;

Analisis distribusi skor per decile (10 grup).

Pertanyaan Umum tentang NTILE

Apa itu fungsi NTILE di PostgreSQL?
Membagi data menjadi n bucket/grup dengan jumlah anggota seimbang. Berguna untuk analisis quartile, percentile, dan segmentasi data. Di PostgreSQL, fungsi NTILE termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan NTILE di PostgreSQL?
Gunakan sintaks berikut: NTILE(num_buckets) OVER ( [PARTITION BY partition_expression] ORDER BY sort_expression ). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi NTILE?
Fungsi NTILE mengembalikan nilai bertipe integer. Pastikan tipe data hasil sudah sesuai dengan kebutuhan query atau formula kamu. Jika input mengandung nilai NULL, perilaku fungsi dapat berbeda — selalu periksa dokumentasi untuk memastikan hasilnya sesuai ekspektasi.
Apa saja parameter fungsi NTILE?
Fungsi ini memiliki 2 parameter wajib dan 1 parameter opsional. Parameter yang digunakan: num_buckets (integer, wajib): Jumlah bucket/grup yang diinginkan; PARTITION BY (expression, opsional): Membagi data menjadi grup terpisah; ORDER BY (expression, wajib): Menentukan urutan pembagian.