İçeriğe geç

SQL Window Fonksiyonları: ROW_NUMBER, RANK, LAG, LEAD ile Analitik Sorgular

20.09.2024 3 okunma

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;
sql window fonksiyonları sql row_number sql rank sql lag lead sql over partition by sql analitik
İLERİ DÜZEY SQL PROGRAMLAMA hakkında bilgi almak ister misiniz?

Birebir özel yüz yüze eğitim yada uzaktan eğitim, esnek ders saatleri ile Pendik Kurtköy'de.