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.