Window

DENSE_RANK

BigQueryBigQuery

Memberikan peringkat untuk setiap baris tanpa gap. Baris dengan nilai sama mendapat peringkat sama, peringkat berikutnya langsung +1.

Tipe hasil: INT64Diperbarui: 16 Mei 2026

Syntax

SQL
DENSE_RANK() OVER ([PARTITION BY partition_expression] ORDER BY sort_expression)

Parameter

ORDER BYexpressionwajib

Menentukan urutan ranking

PARTITION BYexpressionopsional

Membagi data ke dalam grup (opsional)

Contoh Penggunaan

Dense Ranking

SQL
1SELECT
2 name,
3 score,
4 RANK() OVER (ORDER BY score DESC) as rank,
5 DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank
6FROM `project.dataset.students`;

Perbandingan RANK vs DENSE_RANK.

Hasil
namescorerankdense_rank
Alice10011
Bob10011
Charlie9032
David8043

Top N per Category

SQL
1WITH ranked AS (
2 SELECT
3 category,
4 product_name,
5 sales,
6 DENSE_RANK() OVER (PARTITION BY category ORDER BY sales DESC) as dr
7 FROM `project.dataset.products`
8)
9SELECT * FROM ranked WHERE dr <= 3;

Top 3 products per category (termasuk ties).

Pertanyaan Umum tentang DENSE_RANK

Apa itu fungsi DENSE_RANK di BigQuery?
Memberikan peringkat untuk setiap baris tanpa gap. Baris dengan nilai sama mendapat peringkat sama, peringkat berikutnya langsung +1. Di BigQuery, fungsi DENSE_RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan DENSE_RANK di BigQuery?
Gunakan sintaks berikut: DENSE_RANK() OVER ([PARTITION BY partition_expression] ORDER BY sort_expression). 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 INT64. 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 (expression, opsional): Membagi data ke dalam grup (opsional); ORDER BY (expression, wajib): Menentukan urutan ranking.