Window

RANK

PostgreSQLPostgreSQL

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

Tipe hasil: bigintDiperbarui: 16 Mei 2026

Syntax

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

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 name,
4 score
5FROM students;

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

Hasil
ranknamescore
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 students;

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

Hasil
scorerankdense_rankrow_num
95111
95112
90323
85434

Pertanyaan Umum tentang RANK

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