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: 16 Mei 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.

Pertanyaan Umum tentang DENSE_RANK

Apa itu fungsi DENSE_RANK di DuckDB?
Memberikan ranking ke setiap baris tanpa gap. Nilai yang sama mendapat ranking sama, dan ranking berikutnya tidak di-skip. Di DuckDB, fungsi DENSE_RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan DENSE_RANK di DuckDB?
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 (clause, opsional): Opsional. Membagi hasil menjadi partisi untuk ranking terpisah; ORDER BY (clause, wajib): Menentukan urutan ranking.