Window Fonksiyonları Nedir?
GROUP BY gibi satırları gruplayan ama orijinal satırları koruyarak her satıra hesaplama yapan fonksiyonlardır. Raporlama ve veri analizinde vazgeçilmezdir.
ROW_NUMBER
-- Her müşterinin siparişlerini numaralandır
SELECT
musteri_id, tarih, tutar,
ROW_NUMBER() OVER (PARTITION BY musteri_id ORDER BY tarih) AS siparis_sira
FROM siparisler;RANK ve DENSE_RANK
-- Satış temsilcilerini sırala
SELECT
temsilci_adi,
SUM(tutar) AS toplam_satis,
RANK() OVER (ORDER BY SUM(tutar) DESC) AS sira,
DENSE_RANK() OVER (ORDER BY SUM(tutar) DESC) AS yogun_sira
FROM siparisler
GROUP BY temsilci_adi;LAG ve LEAD
-- Önceki ve sonraki ay ile karşılaştırma
SELECT ay, ciro,
LAG(ciro, 1) OVER (ORDER BY ay) AS onceki_ay_ciro,
LEAD(ciro, 1) OVER (ORDER BY ay) AS sonraki_ay_ciro,
ciro - LAG(ciro, 1) OVER (ORDER BY ay) AS degisim
FROM aylik_ciro;Kümülatif Toplam
SELECT tarih, tutar,
SUM(tutar) OVER (ORDER BY tarih ROWS UNBOUNDED PRECEDING) AS kumulatif
FROM siparisler;