Window
DuckDB
DENSE_RANK
Memberikan ranking ke setiap baris tanpa gap. Nilai yang sama mendapat ranking sama, dan ranking berikutnya tidak di-skip.
Tipe hasil:
BIGINTDiperbarui: 6 Jan 2026Syntax
SQL
DENSE_RANK() OVER ([PARTITION BY col] ORDER BY col)Parameter
ORDER BYclausewajib
Menentukan urutan ranking
PARTITION BYclauseopsional
Opsional. Membagi hasil menjadi partisi untuk ranking terpisah
Contoh Penggunaan
Dense Ranking
SQL
1 SELECT 2 name, 3 score, 4 DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank 5 FROM students;
Memberikan ranking tanpa gap.
Hasil
| name | score | dense_rank |
|---|---|---|
| Ani | 95 | 1 |
| Budi | 95 | 1 |
| Citra | 90 | 2 |
| Deni | 85 | 3 |
Top 3 Distinct Salaries
SQL
1 SELECT DISTINCT salary 2 FROM ( 3 SELECT 4 salary, 5 DENSE_RANK() OVER (ORDER BY salary DESC) as dr 6 FROM employees 7 ) sub 8 WHERE dr <= 3;
Mendapatkan 3 nilai gaji tertinggi yang berbeda.
Hasil
| salary |
|---|
| 25000000 |
| 20000000 |
| 18000000 |
Ranking per Department
SQL
1 SELECT 2 department, 3 name, 4 performance_score, 5 DENSE_RANK() OVER (PARTITION BY department ORDER BY performance_score DESC) as perf_rank 6 FROM employees;
Ranking performa karyawan per department tanpa gap.