Window

NTILE

DuckDBDuckDB

Membagi baris menjadi n kelompok (buckets) yang kurang lebih sama besar dan memberikan nomor kelompok ke setiap baris.

Tipe hasil: BIGINTDiperbarui: 6 Jan 2026

Syntax

SQL
NTILE(n) OVER ([PARTITION BY col] ORDER BY col)

Parameter

nINTEGERwajib

Jumlah kelompok yang diinginkan

ORDER BYclausewajib

Menentukan urutan pembagian kelompok

PARTITION BYclauseopsional

Opsional. Membagi hasil menjadi partisi terpisah

Contoh Penggunaan

Membagi ke 4 Kelompok (Quartiles)

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

Membagi karyawan ke 4 kelompok berdasarkan gaji.

Hasil
namesalaryquartile
Ani50000001
Budi70000001
Citra100000002
Deni120000002
... 4 baris lainnya

Membuat Deciles untuk Analisis

SQL
1SELECT
2 customer_id,
3 total_spending,
4 NTILE(10) OVER (ORDER BY total_spending DESC) as spending_decile
5FROM customer_spending;

Membagi customer ke 10 kelompok berdasarkan spending.

Quartiles per Kategori

SQL
1SELECT
2 category,
3 product_name,
4 price,
5 NTILE(4) OVER (PARTITION BY category ORDER BY price) as price_quartile
6FROM products;

Membuat quartiles harga untuk setiap kategori produk.

Identifikasi Top 10%

SQL
1SELECT *
2FROM (
3 SELECT
4 *,
5 NTILE(10) OVER (ORDER BY score DESC) as decile
6 FROM students
7) sub
8WHERE decile = 1;

Mengambil 10% siswa dengan score tertinggi.