Menu
Coddy logo textTech

ROW_NUMBER fonksiyonu

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

Pencere işlevleri, geçerli satırla ilişkili bir tablo satırları kümesi üzerinde hesaplamalar gerçekleştirir. Normal toplama işlevlerinin aksine, pencere işlevleri sonuçları tek bir satırda birleştirmez.

Şunları yapmanız gerektiğinde özellikle kullanışlıdır:

  • Devam eden toplamları hesaplamak
  • Gruplar içindeki öğeleri sıralamak
  • Geçerli satırları önceki/sonraki satırlarla karşılaştırmak
  • Zaman aralıklarındaki eğilimleri analiz etmek

Örneğin, pencere işlevlerinin kullanımına ilişkin bazı gerçek dünya örnekleri şunlardır:

  • Satış Analizi
    • Her yıla kadar (1995, 1997, 1999) kümülatif satışları hesaplayın
    • Her çeyrek için en çok satan ürünleri bulun
  • Spor İstatistikleri
    • Farklı yıllardaki Olimpiyat madalya sayılarını takip edin
    • Her yarışma dönemindeki (2000, 2004, 2008) önde gelen sporcuları belirleyin

ROW_NUMBER() en basit pencere işlevlerinden biridir. Sonuç kümesindeki her satıra benzersiz, sıralı bir numara atar. İşte nasıl kullanılır:

SELECT column1, column2,
       ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;

ROW_NUMBER() ile OVER yan tümcesinin kullanılması zorunludur: ROW_NUMBER() OVER ()

Örneğin:

SELECT product_name, sale_date,
       ROW_NUMBER() OVER () as row_num
FROM sales;

Bu, 1’den toplam satır sayısına kadar sayan bir row_num sütunu ekler.

Not: OVER yan tümcesi, numaralandırmanın nasıl çalışacağını denetlemek için sıralama ve bölümleme talimatları içerebilir.

challenge icon

Görev

Kolay

Kullanılabilir tablolar ve sütunlar:

  • liquids: id, density

Yoğunluğu 5.677’den fazla olan tüm sıvıları getirin.

Sonuçları numaralandırın (ROW_NUMBER() işlevini kullanın) ve bu sütuna row_num adını verin

Kendin dene

-- Filtrelenmiş sonucun her satırını bir pencere fonksiyonu kullanarak numaralandır
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____
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

Kendi başına pratik yap: SQL playground