Window

RANK

DuckDBDuckDB

Memberikan ranking ke setiap baris. Nilai yang sama mendapat ranking yang sama, dan ranking berikutnya di-skip sesuai jumlah duplikat.

Tipe hasil: BIGINTDiperbarui: 6 Jan 2026

Syntax

SQL
RANK() OVER ([PARTITION BY col] ORDER BY col)

Parameter

ORDER BYclausewajib

Menentukan urutan ranking

PARTITION BYclauseopsional

Opsional. Membagi hasil menjadi partisi untuk ranking terpisah

Contoh Penggunaan

Ranking dengan Ties

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

Memberikan ranking berdasarkan score. Nilai sama = ranking sama.

Hasil
namescorerank
Ani951
Budi951
Citra903
Deni854

Ranking per Kategori

SQL
1SELECT
2 category,
3 product_name,
4 sales,
5 RANK() OVER (PARTITION BY category ORDER BY sales DESC) as sales_rank
6FROM products;

Ranking produk berdasarkan penjualan dalam setiap kategori.

Perbandingan RANK vs ROW_NUMBER

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

Membandingkan ketiga fungsi ranking.

Hasil
namescorerow_numrankdense_rank
Ani95111
Budi95211
Citra90332
Deni85443