Window

NTILE

MySQLMySQL

Membagi baris menjadi n bucket dengan ukuran seimbang. Mengembalikan nomor bucket (1 sampai n).

Tipe hasil: BIGINTDiperbarui: 7 Jan 2026

Syntax

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

Parameter

nintegerwajib

Jumlah bucket yang diinginkan

ORDER BYcolumn(s)wajib

Kolom untuk menentukan urutan pembagian

PARTITION BYcolumn(s)opsional

Kolom untuk membagi data menjadi grup (opsional)

Contoh Penggunaan

Kuartil

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

Membagi karyawan ke 4 kuartil gaji.

Hasil
(employees in 4 quartiles)

Desil

SQL
1SELECT product, revenue,
2 NTILE(10) OVER (ORDER BY revenue DESC) AS decile
3FROM products;

Membagi produk ke 10 desil berdasarkan revenue.

Hasil
(products in 10 deciles)

Segmentasi Customer

SQL
1SELECT customer_id, total_purchase,
2 CASE NTILE(3) OVER (ORDER BY total_purchase DESC)
3 WHEN 1 THEN 'High Value'
4 WHEN 2 THEN 'Medium Value'
5 WHEN 3 THEN 'Low Value'
6 END AS segment
7FROM customers;

Segmentasi customer berdasarkan pembelian.

Hasil
(customers segmented by value)