Menu
CoddyTech

Fungsi RANK & DENSE_RANK

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 65 dari 72.

ROW_NUMBER() adalah salah satu jenis fungsi pemeringkatan, dan ada dua lagi: RANK() dan DENSE_RANK().

Fungsi RANK() memberi nomor pada baris seperti ROW_NUMBER(), tetapi memberikan nomor yang sama untuk baris yang sama dan melewatkan nomor. DENSE_RANK() mirip dengan RANK(), tetapi tidak melewatkan nomor.

Contohnya:

idlevel
15
26
36
47
57
65
SELECT id, 
	ROW_NUMBER() OVER (ORDER BY level) as row_num,
	RANK() OVER (ORDER BY level) as row_rank,
	DENSE_RANK() OVER (ORDER BY level) as row_dense_rank
FROM table1

Ini akan menghasilkan:

idrow_numrow_rankrow_dense_rank
1111
6211
2332
3432
4553
5653

Penjelasan:

  • ROW_NUMBER(): Selalu unik: 1, 2, 3, 4, 5, 6
  • RANK():
    • level 5 (2 baris): keduanya mendapat peringkat 1
    • level 6 (2 baris): keduanya mendapat peringkat 3 (melewati 2)
    • level 7 (2 baris): keduanya mendapat peringkat 5 (melewati 4)
  • DENSE_RANK():
    • level 5 (2 baris): keduanya mendapat peringkat 1
    • level 6 (2 baris): keduanya mendapat peringkat 2 (tanpa melewati peringkat)
    • level 7 (2 baris): keduanya mendapat peringkat 3 (tanpa melewati peringkat)
challenge icon

Tantangan

Mudah

Tabel dan kolom yang tersedia:

  • medals: region, medal_color, medal_count

Buat query yang menampilkan region, total jumlah medali (jumlah semua medali tanpa memandang warna), dan dua jenis peringkat:

  1. regular_rank (dengan celah) berdasarkan jumlah medali
  2. dense_rank (tanpa celah) berdasarkan jumlah medali

Urutkan hasil berdasarkan:

order by total_medals desc, region asc

Coba sendiri

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL