Window
DuckDB
ROW_NUMBER
Memberikan nomor urut unik ke setiap baris dalam partisi hasil query. Nomor dimulai dari 1 dan bertambah secara berurutan.
Tipe hasil:
BIGINTDiperbarui: 6 Jan 2026Syntax
SQL
ROW_NUMBER() OVER ([PARTITION BY col] ORDER BY col)Parameter
ORDER BYclausewajib
Menentukan urutan penomoran baris
PARTITION BYclauseopsional
Opsional. Membagi hasil menjadi partisi untuk penomoran terpisah
Contoh Penggunaan
Penomoran Sederhana
SQL
1 SELECT 2 ROW_NUMBER() OVER (ORDER BY name) as row_num, 3 name, 4 department 5 FROM employees;
Memberikan nomor urut berdasarkan nama.
Hasil
| row_num | name | department |
|---|---|---|
| 1 | Ani | Marketing |
| 2 | Budi | Engineering |
| 3 | Citra | Engineering |
Penomoran per Partisi
SQL
1 SELECT 2 department, 3 name, 4 salary, 5 ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) as rank_in_dept 6 FROM employees;
Menomori karyawan dalam setiap department berdasarkan gaji.
Hasil
| department | name | salary | rank_in_dept |
|---|---|---|---|
| Engineering | Budi | 15000000 | 1 |
| Engineering | Citra | 12000000 | 2 |
| Marketing | Ani | 10000000 | 1 |
Top N per Group
SQL
1 WITH ranked AS ( 2 SELECT 3 category, 4 product_name, 5 sales, 6 ROW_NUMBER() OVER (PARTITION BY category ORDER BY sales DESC) as rn 7 FROM products 8 ) 9 SELECT * FROM ranked WHERE rn <= 3;
Mengambil 3 produk terlaris per kategori.
Pagination
SQL
1 SELECT * FROM ( 2 SELECT 3 ROW_NUMBER() OVER (ORDER BY created_at DESC) as rn, 4 * 5 FROM posts 6 ) sub 7 WHERE rn BETWEEN 11 AND 20;
Pagination halaman 2 (baris 11-20).