Window
DuckDB
NTILE
Membagi baris menjadi n kelompok (buckets) yang kurang lebih sama besar dan memberikan nomor kelompok ke setiap baris.
Tipe hasil:
BIGINTDiperbarui: 6 Jan 2026Syntax
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
1 SELECT 2 name, 3 salary, 4 NTILE(4) OVER (ORDER BY salary) as quartile 5 FROM employees;
Membagi karyawan ke 4 kelompok berdasarkan gaji.
Hasil
| name | salary | quartile |
|---|---|---|
| Ani | 5000000 | 1 |
| Budi | 7000000 | 1 |
| Citra | 10000000 | 2 |
| Deni | 12000000 | 2 |
| ... 4 baris lainnya | ||
Membuat Deciles untuk Analisis
SQL
1 SELECT 2 customer_id, 3 total_spending, 4 NTILE(10) OVER (ORDER BY total_spending DESC) as spending_decile 5 FROM customer_spending;
Membagi customer ke 10 kelompok berdasarkan spending.
Quartiles per Kategori
SQL
1 SELECT 2 category, 3 product_name, 4 price, 5 NTILE(4) OVER (PARTITION BY category ORDER BY price) as price_quartile 6 FROM products;
Membuat quartiles harga untuk setiap kategori produk.
Identifikasi Top 10%
SQL
1 SELECT * 2 FROM ( 3 SELECT 4 *, 5 NTILE(10) OVER (ORDER BY score DESC) as decile 6 FROM students 7 ) sub 8 WHERE decile = 1;
Mengambil 10% siswa dengan score tertinggi.