SQL Server Lag Fonksiyonu

Herkese merhaba,

Bu yazıda size SQL Server Lag Fonksiyonundan bahsedeceğim.

SQL Server’da Lag fonksiyonu hedeflenen alan üzerinde geri gitmeye olanak sağlayan bir fonksiyondur. Ne demek istiyoruz ayrıntılı anlatalım.

Diyelim ki bir satış tablonuz var ve bu satış tablosunda her yıla karşılık elde edilen gelir değerlerini tutuyorsunuz. Bir önceki yıla ait veriler ile ilgili karşılaştırma yapmak istediğinizde bu fonksiyon işinize yarayacaktır. Konu hakkındaki örneği inceleyelim.

DECLARE @TestTablosu TABLE(
    Yil INT, Satis INT
)

INSERT INTO @TestTablosu VALUES
('2012',5000), ('2013',5500), ('2014',5250), ('2015',6025), ('2016',6200)

SELECT    Yil, Satis
        , LAG(Satis) OVER (ORDER BY Yil) AS [Önceki Yıl Satışları]
        , LAG(Satis, 2) OVER (ORDER BY Yil) AS [İki Yıl Önceki Satışlar]
        , LAG(Satis, 2, 0) OVER (ORDER BY Yil) AS [İki Yıl Önceki Satışlar] -- Null ise 0 döndürüyor
FROM    @TestTablosu 

Görüldüğü üzere önceki yıl satışları ile bir karşılaştırma yapılmış oldu. Ayrıca Lag fonksiyonundan sonra 2 diyerek 2 yıl önceki satışlar için de bir karşılaştırma yapabiliriz. Null değer dönmesini istemiyorsak üçüncü bir parametre olarak sıfır da ekleyebiliriz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir