Window

ROW_NUMBER

MySQLMySQL

Memberikan nomor urut unik untuk setiap baris dalam partition. Nomor dimulai dari 1 dan naik berurutan.

Tipe hasil: BIGINTDiperbarui: 16 Mei 2026

Syntax

SQL
ROW_NUMBER() OVER ([PARTITION BY col] ORDER BY col)

Parameter

ORDER BYcolumn(s)wajib

Kolom untuk menentukan urutan penomoran

PARTITION BYcolumn(s)opsional

Kolom untuk membagi data menjadi grup (opsional)

Contoh Penggunaan

Nomor Urut Sederhana

SQL
1SELECT name, salary,
2 ROW_NUMBER() OVER (ORDER BY salary DESC) AS rank
3FROM employees;

Menomori karyawan berdasarkan gaji tertinggi.

Hasil
(employees numbered by salary)

Per Department

SQL
1SELECT dept, name, salary,
2 ROW_NUMBER() OVER (
3 PARTITION BY dept
4 ORDER BY salary DESC
5 ) AS dept_rank
6FROM employees;

Nomor urut per departemen.

Hasil
(rank within each department)

Pagination

SQL
1WITH numbered AS (
2 SELECT *,
3 ROW_NUMBER() OVER (ORDER BY id) AS rn
4 FROM products
5)
6SELECT * FROM numbered
7WHERE rn BETWEEN 11 AND 20;

Mengambil halaman 2 (item 11-20).

Hasil
(page 2 of products)

Pertanyaan Umum tentang ROW_NUMBER

Apa itu fungsi ROW_NUMBER di MySQL?
Memberikan nomor urut unik untuk setiap baris dalam partition. Nomor dimulai dari 1 dan naik berurutan. Di MySQL, fungsi ROW_NUMBER termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan ROW_NUMBER di MySQL?
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 (column(s), opsional): Kolom untuk membagi data menjadi grup (opsional); ORDER BY (column(s), wajib): Kolom untuk menentukan urutan penomoran.