Window

DENSE_RANK

DuckDBDuckDB

Memberikan ranking ke setiap baris tanpa gap. Nilai yang sama mendapat ranking sama, dan ranking berikutnya tidak di-skip.

Tipe hasil: BIGINTDiperbarui: 6 Jan 2026

Syntax

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
1SELECT
2 name,
3 score,
4 DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank
5FROM students;

Memberikan ranking tanpa gap.

Hasil
namescoredense_rank
Ani951
Budi951
Citra902
Deni853

Top 3 Distinct Salaries

SQL
1SELECT DISTINCT salary
2FROM (
3 SELECT
4 salary,
5 DENSE_RANK() OVER (ORDER BY salary DESC) as dr
6 FROM employees
7) sub
8WHERE dr <= 3;

Mendapatkan 3 nilai gaji tertinggi yang berbeda.

Hasil
salary
25000000
20000000
18000000

Ranking per Department

SQL
1SELECT
2 department,
3 name,
4 performance_score,
5 DENSE_RANK() OVER (PARTITION BY department ORDER BY performance_score DESC) as perf_rank
6FROM employees;

Ranking performa karyawan per department tanpa gap.