Window
MySQL
RANK
Memberikan ranking dengan gap untuk nilai yang sama. Jika ada tie, baris berikutnya melewati nomor.
Tipe hasil:
BIGINTDiperbarui: 7 Jan 2026Syntax
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
1 SELECT name, score, 2 RANK() OVER (ORDER BY score DESC) AS rank 3 FROM students;
Ranking siswa dengan gap jika skor sama.
Hasil
Jika 2 siswa skor 90, berikutnya rank 3
Ranking Penjualan
SQL
1 SELECT region, salesperson, total_sales, 2 RANK() OVER ( 3 PARTITION BY region 4 ORDER BY total_sales DESC 5 ) AS sales_rank 6 FROM sales_data;
Ranking sales per region.
Hasil
(ranked salespeople by region)
Top 3 per Kategori
SQL
1 SELECT * 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)