Window
Snowflake
RANK
Memberikan ranking untuk setiap baris. Baris dengan nilai sama mendapat rank yang sama, dengan gap setelahnya.
Tipe hasil:
INTEGERDiperbarui: 6 Jan 2026Syntax
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
1 SELECT 2 RANK() OVER (ORDER BY score DESC) as rank, 3 student_name, 4 score 5 FROM exam_results;
Memberikan ranking berdasarkan score. Jika ada nilai sama, rankingnya sama.
Hasil
| RANK | STUDENT_NAME | SCORE |
|---|---|---|
| 1 | Alice | 95 |
| 1 | Bob | 95 |
| 3 | Carol | 90 |
| 4 | David | 85 |
Perbandingan RANK vs DENSE_RANK vs ROW_NUMBER
SQL
1 SELECT 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 6 FROM exam_results;
Perhatikan perbedaan: RANK melompat, DENSE_RANK tidak, ROW_NUMBER selalu unik.
Hasil
| SCORE | RANK | DENSE_RANK | ROW_NUM |
|---|---|---|---|
| 95 | 1 | 1 | 1 |
| 95 | 1 | 1 | 2 |
| 90 | 3 | 2 | 3 |
| 85 | 4 | 3 | 4 |
Ranking per Department
SQL
1 SELECT 2 department, 3 employee_name, 4 salary, 5 RANK() OVER (PARTITION BY department ORDER BY salary DESC) as salary_rank 6 FROM employees;
Ranking gaji karyawan dalam masing-masing department.
Hasil
| DEPARTMENT | EMPLOYEE_NAME | SALARY | SALARY_RANK |
|---|---|---|---|
| Engineering | John | 150000 | 1 |
| Engineering | Jane | 130000 | 2 |
| Sales | Bob | 100000 | 1 |
| Sales | Alice | 100000 | 1 |
| ... 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.