Window İleri Seviye: LAG, LEAD, FIRST_VALUE ve LAST_VALUE ile Analitik Çözümler
Analitik işlevler, veritabanı sorgularında verileri daha derinlemesine analiz etmek için kullanılan güçlü araçlardır. Bu makalede, LAG, LEAD, FIRST_VALUE ve LAST_VALUE analitik işlevlerini inceleyeceğiz. Bu işlevler, verileri sıralayarak ve belirli bir pencere çerçevesi içinde değerlendirmenize olanak tanır.
LAG ve LEAD ile Geçmiş ve Gelecek Değerleri Alın
LAG ve LEAD işlevleri, geçerli satırın önceki ve sonraki satırlarındaki değerleri almanızı sağlar. Bu, verilerin zaman serisi analizi veya sıralı veriler üzerinde karşılaştırma yapmanızı gerektiren senaryolarda kullanışlıdır.
-- LAG ve LEAD ile geçerli satırın önceki ve sonraki değerlerini al
SELECT
OrderID,
OrderDate,
Amount,
LAG(Amount) OVER (ORDER BY OrderDate) AS PreviousAmount,
LEAD(Amount) OVER (ORDER BY OrderDate) AS NextAmount
FROM
Orders
ORDER BY
OrderDate;Code language: SQL (Structured Query Language) (sql)
Yukarıdaki sorgu, her siparişin tutarını ve önceki siparişin tutarını (PreviousAmount) ve sonraki siparişin tutarını (NextAmount) döndürür.
FIRST_VALUE ve LAST_VALUE ile Pencere Çerçevesi İçinde İlk ve Son Değerleri Alın
FIRST_VALUE ve LAST_VALUE işlevleri, belirli bir pencere çerçevesi içinde ilk ve son değerleri almanızı sağlar. Bu, verilerin bir dizi içindeki başlangıç ve bitiş noktalarını belirlemek için kullanışlıdır.
-- FIRST_VALUE ve LAST_VALUE ile pencere çerçevesi içinde ilk ve son değerleri al
SELECT
OrderID,
OrderDate,
Amount,
FIRST_VALUE(Amount) OVER (ORDER BY OrderDate) AS FirstAmount,
LAST_VALUE(Amount) OVER (ORDER BY OrderDate ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS LastAmount
FROM
Orders
ORDER BY
OrderDate;Code language: SQL (Structured Query Language) (sql)
Yukarıdaki sorgu, her siparişin tutarını ve siparişlerin ilk tutarını (FirstAmount) ve son tutarını (LastAmount) döndürür. NOT: LAST_VALUE işlevinde ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ifadesi, pencerenin tüm satırları kapsamasını sağlar.
ROWS BETWEEN veya RANGE BETWEEN ifadelerini kullanın.
Canlı Ortam Uyarısı
Özet
Analitik işlevler, veritabanı sorgularında verileri daha derinlemesine analiz etmek için güçlü araçlardır. LAG, LEAD, FIRST_VALUE ve LAST_VALUE işlevleri, verilerin sıralayarak ve belirli bir pencere çerçevesi içinde değerlendirmenize olanak tanır. Bu işlevleri doğru bir şekilde kullanarak, verilerinizi daha etkili bir şekilde analiz edebilir ve daha iyi kararlar alabilirsiniz.





