Window

DENSE_RANK

MySQLMySQL

Memberikan ranking tanpa gap untuk nilai yang sama. Ranking berurutan tanpa melewati nomor.

Tipe hasil: BIGINTDiperbarui: 16 Mei 2026

Syntax

SQL
DENSE_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 Tanpa Gap

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

Ranking padat tanpa melewati nomor.

Hasil
Jika 2 siswa skor 90, berikutnya rank 2

Bandingkan dengan RANK

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

Melihat perbedaan RANK vs DENSE_RANK.

Hasil
(comparison of both ranking methods)

Tier Pricing

SQL
1SELECT product, price,
2 DENSE_RANK() OVER (ORDER BY price DESC) AS price_tier
3FROM products;

Mengelompokkan produk berdasarkan tier harga.

Hasil
(products grouped by price tier)

Pertanyaan Umum tentang DENSE_RANK

Apa itu fungsi DENSE_RANK di MySQL?
Memberikan ranking tanpa gap untuk nilai yang sama. Ranking berurutan tanpa melewati nomor. Di MySQL, fungsi DENSE_RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan DENSE_RANK di MySQL?
Gunakan sintaks berikut: DENSE_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 DENSE_RANK?
Fungsi DENSE_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 DENSE_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.