SQL WITH Nedir ? Nasıl Kullanılır ?

Sql bazı karmaşık sorgu yazarken aynı tabloyu defalarca kullanmamız gerekir veya bu tabloların birbirleriyle cross işlemlerinin yapılması gerektiği durumlarda kullanabilmektedir. Lag fonksiyonu kullanımında da sık sık karşılaşabileceğiniz bir yapıdır , çünkü bu fonksiyonda veriyi bir öncekiyle karşılaştırabilmek için kullanılır.

Aşağıdaki gibi kullanabilirsiniz ;

with [alias name] as 
(select [kolon1],[kolon2]... from [Table Name])
select * from [alias name]

....

bu şekilde kullanabilirsiniz ilk blokta tanımlamamızı yapmaktayız kullanacağımız tabloyu belirtebilirsiniz.
Alt kısımda ise verdiğiniz isimle gerek gördüğünüz işlemleri yapabilirsiniz.

WITH 2018_satislar AS(

SELECT month, SUM(net_sales) net_sales 

FROM Satislar 

WHERE year = 2018 

GROUP BY month 
) 

SELECT month, net_sales, 

LAG(net_sales,1) OVER ( ORDER BY month ) previous_month_sales 

FROM 2018_satislar;

Bu kısımda ise WITH ile 2018 yılı satışları aldıktan sonra alt blokta LAG fonksiyonu ile bir önceki yıl ile karşılştırması yapılmaktadır.

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.