Menu
Coddy logo textTech

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:

idrevenuemonth
15325
24926
33937
47238
SELECT id, revenue, LAG(revenue, 1) OVER (ORDER BY MONTH) as prev_month_revenue
FROM table1 ORDER BY id

Bu, aşağıdaki tabloyu oluşturacaktır:

idrevenueprev_month_revenue
1532 
2492532
3393492
4723393

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
idrevenuenext_month_revenue
1532492
2492393
3393723
4723 
challenge icon

Görev

Kolay

Kullanı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ı:

  • id
  • efficiency
  • previous_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 NULL

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

Kendi başına pratik yap: SQL playground