Window
DuckDB
RANK
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 2026Syntax
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
1 SELECT 2 name, 3 score, 4 RANK() OVER (ORDER BY score DESC) as rank 5 FROM students;
Memberikan ranking berdasarkan score. Nilai sama = ranking sama.
Hasil
| name | score | rank |
|---|---|---|
| Ani | 95 | 1 |
| Budi | 95 | 1 |
| Citra | 90 | 3 |
| Deni | 85 | 4 |
Ranking per Kategori
SQL
1 SELECT 2 category, 3 product_name, 4 sales, 5 RANK() OVER (PARTITION BY category ORDER BY sales DESC) as sales_rank 6 FROM products;
Ranking produk berdasarkan penjualan dalam setiap kategori.
Perbandingan RANK vs ROW_NUMBER
SQL
1 SELECT 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 7 FROM students;
Membandingkan ketiga fungsi ranking.
Hasil
| name | score | row_num | rank | dense_rank |
|---|---|---|---|---|
| Ani | 95 | 1 | 1 | 1 |
| Budi | 95 | 2 | 1 | 1 |
| Citra | 90 | 3 | 3 | 2 |
| Deni | 85 | 4 | 4 | 3 |