ROW_NUMBER function
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 57 / 72.
Pencere işlevleri (window functions), geçerli satırla ilişkili bir dizi tablo satırı genelinde hesaplamalar gerçekleştirir. Normal toplama (aggregate) işlevlerinin aksine, pencere işlevleri sonuçları tek bir satıra indirgemez.
Özellikle şunları yapmanız gerektiğinde oldukça kullanışlıdırlar:
- Kümülâtif toplamları hesaplamak
- Gruplar içindeki ögeleri sıralamak
- Mevcut satırları önceki/sonraki satırlarla karşılaştırmak
- Zaman aralıklarındaki eğilimleri analiz etmek
Örneğin, işte pencere fonksiyonlarının (window functions) kullanım senaryolarına dair bazı gerçek dünya örnekleri:
- Satış Analizi
- Her bir yıla (1995, 1997, 1999) kadar olan kümülatif satışları hesaplayın
- Her bir ç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) öne çıkan sporcuları belirleyin
ROW_NUMBER() en basit window fonksiyonlarından biridir. Sonuç kümesindeki each row için benzersiz, sıralı bir numara atar. Kullanımı şu şekildedir:
SELECT column1, column2,
ROW_NUMBER() OVER ([PARTITION BY column] [ORDER BY column]) as row_num
FROM table_name;ROW_NUMBER() ile OVER yan cümlesini kullanmak zorunludur : ROW_NUMBER() OVER ()
Örneğin:
SELECT product_name, sale_date,
ROW_NUMBER() OVER () as row_num
FROM sales;Bu işlem, 1'den toplam satır sayısına kadar sayan bir row_num sütunu ekler.
Not: OVER tümleci, numaralandırmanın nasıl çalışacağını kontrol etmek için sıralama ve bölme (partitioning) talimatları içerebilir.
Görev
KolayMevcut tablolar ve sütunlar:
<strong>liquids</strong>:<strong>id</strong>,<strong>density</strong>
5.677'den fazla density değerine sahip tüm liquids kayıtlarını getirin.
Sonucu numaralandırın (ROW_NUMBER() fonksiyonunu kullanın) ve bu sütuna row_num adını verin.
Kendin dene
-- Pencere fonksiyonu kullanarak filtrelenmiş sonucun her satırını numaralandır
SELECT id, density, ____ as row_num
FROM liquids
WHERE density > ____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 columnsKendi başına pratik yap: SQL playground