Window

RANK

MySQLMySQL

Memberikan ranking dengan gap untuk nilai yang sama. Jika ada tie, baris berikutnya melewati nomor.

Tipe hasil: BIGINTDiperbarui: 16 Mei 2026

Syntax

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

Parameter

ORDER BYcolumn(s)wajib

Kolom untuk menentukan urutan ranking

PARTITION BYcolumn(s)opsional

Kolom untuk membagi data menjadi grup (opsional)

Contoh Penggunaan

Ranking dengan Gap

SQL
1SELECT name, score,
2 RANK() OVER (ORDER BY score DESC) AS rank
3FROM students;

Ranking siswa dengan gap jika skor sama.

Hasil
Jika 2 siswa skor 90, berikutnya rank 3

Ranking Penjualan

SQL
1SELECT region, salesperson, total_sales,
2 RANK() OVER (
3 PARTITION BY region
4 ORDER BY total_sales DESC
5 ) AS sales_rank
6FROM sales_data;

Ranking sales per region.

Hasil
(ranked salespeople by region)

Top 3 per Kategori

SQL
1SELECT * FROM (
2 SELECT category, product, revenue,
3 RANK() OVER (
4 PARTITION BY category
5 ORDER BY revenue DESC
6 ) AS rk
7 FROM products
8) t WHERE rk <= 3;

Produk top 3 per kategori.

Hasil
(top 3 products each category)

Pertanyaan Umum tentang RANK

Apa itu fungsi RANK di MySQL?
Memberikan ranking dengan gap untuk nilai yang sama. Jika ada tie, baris berikutnya melewati nomor. Di MySQL, fungsi RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan RANK di MySQL?
Gunakan sintaks berikut: RANK() OVER ([PARTITION BY col] ORDER BY col). Pastikan argumen yang dimasukkan sudah sesuai dengan tipe data yang diharapkan.
Apa nilai yang dikembalikan oleh fungsi RANK?
Fungsi RANK 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 RANK?
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 ranking.