LEAD ve LAG Fonksiyonları
Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası. Ders 61 / 72.
LEAD ve LAG işlevleri, geçerli satırın değerine n adım geriden veya n adım ileriden erişmemizi sağlar.
Örneğin, bir şirketin mevcut satırdaki ve bir ay önceki gelirinin oranını hesaplamak istiyorsak, değeri önceki aydan çıkarabiliriz:
| id | revenue | month |
| 1 | 532 | 5 |
| 2 | 492 | 6 |
| 3 | 393 | 7 |
| 4 | 723 | 8 |
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY idBu, aşağıdaki tabloyu oluşturacaktır:
| id | revenue | prev_month_revenue |
| 1 | 532 | |
| 2 | 492 | 532 |
| 3 | 393 | 492 |
| 4 | 723 | 393 |
Bu şekilde prev_month_revenue/revenue oranını hesaplayabiliriz.
Bunun yerine LEAD işlevini kullansaydık, her satırın sonraki ayındaki gelirini alırdı:
SELECT id, revenue, LEAD(revenue, 1) OVER (ORDER BY MONTH) as next_month_revenue
FROM table1 ORDER BY id| id | revenue | next_month_revenue |
| 1 | 532 | 492 |
| 2 | 492 | 393 |
| 3 | 393 | 723 |
| 4 | 723 |
Görev
KolayKullanılabilir tablolar ve sütunlar:
air_conditioners:id,efficiency,strength,month
Her klima cihazının verimliliğini bir öncekiyle karşılaştırın.
Her klima cihazının verimliliğini, kurulan bir önceki klima cihazının (id temel alınarak) verimliliğiyle birlikte gösteren bir sorgu yazın. Ayrıca mevcut ve bir önceki klima cihazı arasındaki verimlilik farkını hesaplayın. Sonucu artan düzende id ve efficiency değerlerine göre sıralayın.
Beklenen çıktı sütunları:
idefficiencyprevious_efficiency(LAG kullanarak)efficiency_difference(mevcut verimlilik - önceki verimlilik)
Son olarak sorguyu sarmalayın ve previous_efficiency (ve dolayısıyla efficiency_difference) boş olan, yani NULL değerine sahip ilk satırı filtreleyin:
SELECT * FROM (
-- Your query here
)
WHERE previous_efficiency IS NOT NULLKendin 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
4Daha Fazla Anahtar Sözcük
IN anahtar sözcüğüBETWEEN anahtar sözcüğüLIKE anahtar sözcüğüAS anahtar sözcüğüTekrar - Cep Telefonu Modelleri2Koşullar
Koşulların TemelleriAND Anahtar SözcüğüOR Anahtar SözcüğüNOT Anahtar SözcüğüBirden Çok Koşulu BirleştirmeParantezlerBoolean Değerler8İstatistik
Yerleşik Toplama Bölüm 1Yerleşik Toplama Bölüm 2Gruplama Bölüm 1Gruplama Bölüm 2Alt Sorgular Bölüm 1Alt Sorgular Bölüm 2Tekrar - Total Gain MağazasıTekrar - Scooter MağazasıTekrar - Kahve Mağazası11Pencere Fonksiyonları 1. Bölüm
ROW_NUMBER fonksiyonuORDER BY ölçütüPARTITION BY ölçütüPARTITION ve ORDERLEAD ve LAG FonksiyonlarıTekrar - LEAD ve LAGTekrar - GörsellerTekrar - Kutular3Belirli Döndürme Biçimi
Null değerlerSonuçları Sıralama 1. BölümSonuçları Sıralama 2. BölümTekrar - Siber Güvenlik FirmasıKayıt Sayısını SınırlamaTekrar - Araç Fabrikası6Giriş Alıştırmaları
Tekrar - Parlamento SeçimiTekrar - Polisin Suçluyu TutuklamasıTekrar - Bar İçecek KabıTekrar - Mühendis Yeni Sütunlar9Birden Çok Tablo
Temel JOIN Bölüm 1Temel JOIN Bölüm 2Tekrar - JOINKendine JOINTekrar - Kendine JOINUNIONSorguları Basitleştirme, WITH Anahtar SözcüğüTekrar - WITH SorgularıTekrar - Gayrimenkul Müteahhidi12Pencere Fonksiyonları 2. Bölüm
RANK ve DENSE_RANK FonksiyonlarıTekrar - RANK ve DENSE_RANKNTILE FonksiyonuToplama FonksiyonlarıROWS ve RANGE ÖlçütüKendi başına pratik yap: SQL playground