Window

ROW_NUMBER

DuckDBDuckDB

Memberikan nomor urut unik ke setiap baris dalam partisi hasil query. Nomor dimulai dari 1 dan bertambah secara berurutan.

Tipe hasil: BIGINTDiperbarui: 16 Mei 2026

Syntax

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
1SELECT
2 ROW_NUMBER() OVER (ORDER BY name) as row_num,
3 name,
4 department
5FROM employees;

Memberikan nomor urut berdasarkan nama.

Hasil
row_numnamedepartment
1AniMarketing
2BudiEngineering
3CitraEngineering

Penomoran per Partisi

SQL
1SELECT
2 department,
3 name,
4 salary,
5 ROW_NUMBER() OVER (PARTITION BY department ORDER BY salary DESC) as rank_in_dept
6FROM employees;

Menomori karyawan dalam setiap department berdasarkan gaji.

Hasil
departmentnamesalaryrank_in_dept
EngineeringBudi150000001
EngineeringCitra120000002
MarketingAni100000001

Top N per Group

SQL
1WITH 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)
9SELECT * FROM ranked WHERE rn <= 3;

Mengambil 3 produk terlaris per kategori.

Pagination

SQL
1SELECT * FROM (
2 SELECT
3 ROW_NUMBER() OVER (ORDER BY created_at DESC) as rn,
4 *
5 FROM posts
6) sub
7WHERE 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.