5 Kasım 2016 Cumartesi

1. SQL Server 2012 ve Yeni Analitik Fonksiyonlar - LEAD() Fonksiyonu

  • LEAD() fonksiyonu 2012 ile gelen 8 yeni analitik fonksiyondan biridir.
  • Bu fonksiyon extra bir join yapmadan bir sonraki satırdaki verileri mevcut satırda işlememize imkan verir. İlk defa duyan için gerçekten açıklaması biraz zor. Örnek vermek gerekirse 2 satırlı bir sorgumuzda değerlerle 2. satırda bulunan herhangi bir kolonun değerini kıyaslayabiliriz.
Daha iyi anlamak için aşağıdaki örneklerimizi inceleyebiliriz.

Kullanımı;

LEAD ( scalar_expression [ ,offset ] , [ default ] )
    OVER ( [ partition_by_clause ] order_by_clause )

Not: Dikkat etmemiz gereken ifade alanı (scalar_expression) olarak yazdığımız kısım tek değer dönmelidir.


Örnek Veri tabanımız;



Örnek 1;


Açıklama 1;
İlk örneğimizde en basit anlamda LEAD() fonksiyonunun kullanımını gördük. Mevcut satırımızda bir sonraki satırın istediğimiz değerini gösteriyoruz.

Örnek 2;

   Açıklama 2;
Bu örneğimizde örnek bir atama yaptık. Bir sonraki satırdaki Value değişkeni ile mevcut satırdaki Value değerini birbirinden çıkarıyoruz. Bunun gibi satır kontrollerini farklı değerler ve satırlar üzerinde de yapabiliriz.

Örnek 3;

   Açıklama 3;
Bu örneğimizde kaç satır sonraki değerler ile karşılaştırma yapıp mevcut satırda kullanacağımızı gösterdik. Bu değeri daha da arttırabilirsiniz. Böylece mevcut satırda istediğiniz n. satırın değerlerini çağırıp istediğiniz gibi kullanabilirsiniz.

Örnek 4;

   Açıklama 4;
Bu örneğimizde bir sonraki kayıt eğer yok ise LEAD() fonksiyonu getiremediği için NULL ataması yapıyordu. Bu tarz durumlarda NULL ise hangi değeri atayacağımız belirledik. Örneğimizde de NULL değerlere 0.00 ataması yapıldı.

Örnek 5;
   Açıklama 5;
Son örneğimizde ise dikkat ederseniz PARTITION kullandık. Böylece hem hızlı hem performanslı olan bu yapıda istediğimiz LEAD() işlemini hangi alan üzerinden yapacağımız belirtiyoruz. Tabi bu durumda NULL değerlerimiz bir hayli fazla olmakta.

Hiç yorum yok:

Yorum Gönder