Window

RANK

MySQLMySQL

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

Tipe hasil: BIGINTDiperbarui: 7 Jan 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)