PostgreSQL LAG Kullanımı
PostgreSQL'de LAG fonksiyonu, veritabanındaki bir sütunun belirli bir satırdaki değerini önceki satırdaki değerle karşılaştırmak için kullanılır.
Örneğin, "satislar" tablosunda "tarih" ve "satis_miktari" sütunları olsun. Bu tabloda "tarih" sütununda "2022-01-01" ve "satis_miktari" sütununda "100" olan bir satır var. Bu satırın önceki satırının "satis_miktari" değerini öğrenmek için aşağıdaki sorgu kullanılabilir..
SELECT LAG(satis_miktari) OVER (ORDER BY tarih) FROM satislar WHERE tarih='2022-01-01';
Ayrıca LAG fonksiyonu, veritabanındaki bir sütunun belirli bir satırdaki değerini önceki satırdaki değerle karşılaştırmak için de kullanılabilir.
Aşağıdaki sorguyu inceleyelim..
SELECT
tarih,
satis_miktari,
LAG(satis_miktari) OVER (ORDER BY tarih) as onceki_satis,
satis_miktari - LAG(satis_miktari) OVER (ORDER BY tarih) as fark
FROM satislar
ORDER BY tarih;
Bu sorgu, tarih sırasına göre satışları listeler ve her satış için bir önceki satışın miktarını ve aralarındaki farkı hesaplar. Aşağıdaki sonuca benzer bir yapı döndürür..
tarih satis_miktari onceki_satis fark
-----------------------------------------------------------
2021-01-01 | 100 | null | null
2021-01-02 | 120 | 100 | 20
2021-01-03 | 130 | 120 | 10
2021-01-04 | 150 | 130 | 20
2021-01-05 | 140 | 150 | -10
Bu sorgu, LAG fonksiyonunu kullanarak her satırın önceki satırının satış miktarını alır. Ayrıca her satır için satış miktarının önceki satırın satış miktarından çıkarılmasını sağlar ve bu iki değer arasındaki farkı hesaplar.