ROW_NUMBER function
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 57 / 72.
Pencere fonksiyonları, mevcut satıra ilişkin bir tablo satırları kümesi üzerinde hesaplamalar gerçekleştirir. Normal toplama fonksiyonlarının aksine, pencere fonksiyonları sonuçları tek bir satıra daraltmaz.
Özellikle ihtiyacınız olduğunda çok yararlıdırlar:
- Akümülatif toplamları hesaplamak
- Gruplar içindeki öğeleri sıralamak
- Mevcut satırları önceki/sonraki satırlarla karşılaştırmak
- Zaman dönemleri boyunca trendleri analiz etmek
Örneğin, pencere fonksiyonlarının kullanım senaryoları için bazı gerçek dünya örnekleri şunlardır:
- Satış Analizi
- Her yıl için kümülatif satışları hesaplayın (1995, 1997, 1999)
- 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öneminde (2000, 2004, 2008) önde gelen sporcuları belirleyin
ROW_NUMBER() en basit pencere fonksiyonlarından biridir. Sonuç kümesindeki her satıra benzersiz ardışık bir numara atar. İşte nasıl kullanıldığı:
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;ROW_NUMBER() ile OVER yan tümcesini kullanmak 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ıştığını kontrol etmek için sıralama ve bölümleme yönergeleri içerebilir.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>liquids</strong>:<strong>id</strong>,<strong>density</strong>
5.677'den fazla yoğunluğa sahip tüm sıvıları getirin.
Sonucu numaralandırın (ROW_NUMBER() fonksiyonunu kullanın) ve bu sütunu row_num olarak adlandırın.
Kopya kağıdı
Pencere fonksiyonları, mevcut satıra ilişkin bir tablo satırları kümesi boyunca hesaplamalar yapar ve sonuçları tek bir satıra daraltmaz.
ROW_NUMBER() her satıra benzersiz sıralı bir numara atar:
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;ROW_NUMBER() ile OVER yan tümcesi zorunludur:
SELECT product_name, sale_date,
ROW_NUMBER() OVER () as row_num
FROM sales;Kendin dene
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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function8Statistics
Built-In Aggregate Part 1Built-In Aggregate Part 2Grouping Part 1Grouping Part 2Subqueries Part 1Subqueries Part 2Recap - Total Gain ShopRecap - Scooter ShopRecap - Coffee Shop11Window Functions part 1
ROW_NUMBER functionORDER BY criterionPARTITION BY criterionPARTITION & ORDERLEAD & LAG FunctionsRecap - LEAD & LAGRecap - PicturesRecap - Boxes3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns