Menu
Coddy logo textTech

RANK & DENSE_RANK Functions

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 65 / 72.

ROW_NUMBER(), sıralama fonksiyonlarının bir türüdür ve iki tane daha vardır: RANK() ve DENSE_RANK().

RANK() fonksiyonu ROW_NUMBER() gibi satırları numaralandırır, ancak aynı satırlar için aynı numaraları verir ve numaraları atlar. DENSE_RANK(), RANK()'a benzer, ancak numaraları atlamaz.

Örneğin:

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

Bu şu şekilde dönecek:

idrow_numrow_rankrow_dense_rank
1111
6211
2332
3432
4553
5653

Açıklama:

  • ROW_NUMBER(): Her zaman benzersiz: 1, 2, 3, 4, 5, 6
  • RANK():
    • seviye 5 (2 satır): her ikisi de sıralama 1 alır
    • seviye 6 (2 satır): her ikisi de sıralama 3 alır (2'yi atlar)
    • seviye 7 (2 satır): her ikisi de sıralama 5 alır (4'ü atlar)
  • DENSE_RANK():
    • seviye 5 (2 satır): her ikisi de sıralama 1 alır
    • seviye 6 (2 satır): her ikisi de sıralama 2 alır (atlamaz)
    • seviye 7 (2 satır): her ikisi de sıralama 3 alır (atlamaz)
challenge icon

Görev

Kolay

Mevcut tablolar ve sütunlar:

  • <strong>medals</strong>: <strong>region</strong>, <strong>medal_color</strong>, <strong>medal_count</strong>

Bölgeyi, toplam madalya sayısını (renk fark etmeksizin tüm madalyaların toplamı) ve iki tür sıralamayı gösteren bir sorgu oluşturun:

  1. Toplam madalyalar üzerinden (boşluklarla) bir regular_rank
  2. Toplam madalyalar üzerinden (boşluksuz) bir dense_rank

Sonucu şu şekilde sıralayın:

order by total_medals desc, region asc

Kendin dene

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler