Window

DENSE_RANK

SnowflakeSnowflake

Memberikan ranking untuk setiap baris tanpa gap. Baris dengan nilai sama mendapat rank yang sama, rank berikutnya adalah +1.

Tipe hasil: INTEGERDiperbarui: 6 Jan 2026

Syntax

SQL
DENSE_RANK() OVER ([PARTITION BY partition_expr] ORDER BY order_expr)

Parameter

ORDER BYclausewajib

Menentukan urutan ranking dalam partition

PARTITION BYclauseopsional

Opsional. Membagi hasil ke dalam partition terpisah

Contoh Penggunaan

Dense Ranking

SQL
1SELECT
2 DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank,
3 student_name,
4 score
5FROM exam_results;

Ranking tanpa gap - setelah tie langsung rank berikutnya.

Hasil
DENSE_RANKSTUDENT_NAMESCORE
1Alice95
1Bob95
2Carol90
3David85

Top N Salaries (Handling Ties)

SQL
1WITH ranked_salaries AS (
2 SELECT
3 employee_name,
4 department,
5 salary,
6 DENSE_RANK() OVER (ORDER BY salary DESC) as salary_rank
7 FROM employees
8)
9SELECT * FROM ranked_salaries WHERE salary_rank <= 3;

Mengambil top 3 gaji tertinggi. Dengan DENSE_RANK, jika ada tie di rank 3, semua akan termasuk.

Hasil
EMPLOYEE_NAMEDEPARTMENTSALARYSALARY_RANK
CEOExecutive5000001
CTOEngineering4000002
CFOFinance4000002
VP SalesSales3500003

Percentile-like Groups

SQL
1SELECT
2 product_name,
3 revenue,
4 DENSE_RANK() OVER (ORDER BY revenue DESC) as revenue_rank,
5 COUNT(*) OVER () as total_products
6FROM products;

Membuat ranking revenue untuk analisis distribusi produk.

Pertanyaan Umum tentang DENSE_RANK

Apa itu fungsi DENSE_RANK di Snowflake?
Memberikan ranking untuk setiap baris tanpa gap. Baris dengan nilai sama mendapat rank yang sama, rank berikutnya adalah +1. Di Snowflake, fungsi DENSE_RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan DENSE_RANK di Snowflake?
Gunakan sintaks berikut: DENSE_RANK() OVER ([PARTITION BY partition_expr] ORDER BY order_expr). 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 INTEGER. 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 ke dalam partition terpisah; ORDER BY (clause, wajib): Menentukan urutan ranking dalam partition.