Window

RANK

SnowflakeSnowflake

Memberikan ranking untuk setiap baris. Baris dengan nilai sama mendapat rank yang sama, dengan gap setelahnya.

Tipe hasil: INTEGERDiperbarui: 6 Jan 2026

Syntax

SQL
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

Ranking Berdasarkan Score

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

Memberikan ranking berdasarkan score. Jika ada nilai sama, rankingnya sama.

Hasil
RANKSTUDENT_NAMESCORE
1Alice95
1Bob95
3Carol90
4David85

Perbandingan RANK vs DENSE_RANK vs ROW_NUMBER

SQL
1SELECT
2 score,
3 RANK() OVER (ORDER BY score DESC) as rank,
4 DENSE_RANK() OVER (ORDER BY score DESC) as dense_rank,
5 ROW_NUMBER() OVER (ORDER BY score DESC) as row_num
6FROM exam_results;

Perhatikan perbedaan: RANK melompat, DENSE_RANK tidak, ROW_NUMBER selalu unik.

Hasil
SCORERANKDENSE_RANKROW_NUM
95111
95112
90323
85434

Ranking per Department

SQL
1SELECT
2 department,
3 employee_name,
4 salary,
5 RANK() OVER (PARTITION BY department ORDER BY salary DESC) as salary_rank
6FROM employees;

Ranking gaji karyawan dalam masing-masing department.

Hasil
DEPARTMENTEMPLOYEE_NAMESALARYSALARY_RANK
EngineeringJohn1500001
EngineeringJane1300002
SalesBob1000001
SalesAlice1000001
... 1 baris lainnya

Pertanyaan Umum tentang RANK

Apa itu fungsi RANK di Snowflake?
Memberikan ranking untuk setiap baris. Baris dengan nilai sama mendapat rank yang sama, dengan gap setelahnya. Di Snowflake, fungsi RANK termasuk dalam kelompok fungsi yang sering digunakan untuk mengolah dan menganalisis data secara efisien.
Bagaimana cara menggunakan RANK di Snowflake?
Gunakan sintaks berikut: 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 RANK?
Fungsi 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 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.