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: 16 Mei 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).
Pertanyaan Umum tentang ROW_NUMBER
Apa itu fungsi ROW_NUMBER di DuckDB?
Memberikan nomor urut unik ke setiap baris dalam partisi hasil query. Nomor dimulai dari 1 dan bertambah secara berurutan. Di DuckDB, fungsi ROW_NUMBER termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan ROW_NUMBER di DuckDB?
Gunakan sintaks berikut: ROW_NUMBER() OVER ([PARTITION BY col] ORDER BY col). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi ROW_NUMBER?
Fungsi ROW_NUMBER mengembalikan nilai bertipe BIGINT. 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 ROW_NUMBER?
Fungsi ini memiliki 1 parameter wajib dan 1 parameter opsional. Parameter yang digunakan: PARTITION BY (clause, opsional): Opsional. Membagi hasil menjadi partisi untuk penomoran terpisah; ORDER BY (clause, wajib): Menentukan urutan penomoran baris.