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.

1.367 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!