M3 · SQL ile Veri Sorgulama
Window Fonksiyonları
Neden bu konu?
Ekipler her gün "her müşterinin son siparişi hangisi", "kümülatif ciro nasıl ilerliyor", "bu ay geçen aya göre ne değişti" gibi sorular sorar. GROUP BY bu soruları yanıtlarken satır detayını yok eder; detayı korumak için self-join'lara sapan sorgular hem hantal hem hataya açıktır. Window fonksiyonlarını bilmeyen biri tekilleştirme yaparken yanlış kaydı seçebilir, kümülatif toplamda çift sayım yapabilir ve bu hatalar doğrudan yanlış rapor, yanlış karar olarak faturalanır.
Benzetme: kavramın günlük karşılığı
Window fonksiyonu, maraton koşucusunun akıllı saati gibidir: her koşucu (satır) yarışta kaybolmaz; saat ona kendi kategorisindeki sırasını (ROW_NUMBER), o ana kadar koştuğu toplam mesafeyi (kümülatif SUM) ve bir önceki kilometredeki temposunu (LAG) anlık gösterir. GROUP BY ise yarış bittikten sonra asılan tek sayfalık sonuç panosudur: özet vardır ama koşucuların tek tek hikâyesi silinmiştir.
Bu işin sırrı: kalıplar
- Grup içi sıralama ve tekilleştirme: ROW_NUMBER() OVER(PARTITION BY musteri_id ORDER BY siparis_tarihi DESC, siparis_id DESC) — eşitliği benzersiz sütunla kırarak her müşterinin en yeni siparişini deterministik seçer.
- Açık frame'li kümülatif toplam: SUM(tutar) OVER(PARTITION BY musteri_id ORDER BY siparis_tarihi, siparis_id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) — satır satır ilerleyen koşan toplam.
+ 3 kalıp daha tam derste
İlk uygulama adımı
1. Her corpus'un şampiyon kelimesini seç
BigQuery'de şu sorguyu çalıştır: SELECT corpus, word, word_count FROM `bigquery-public-data.samples.shakespeare` QUALIFY ROW_NUMBER() OVER(PARTITION BY corpus ORDER BY word_count DESC, word ASC) = 1 ORDER BY corpus. Tie-breaker olarak word ASC eklediğine dikkat et.
Kontrol noktası: Sonuçta her corpus değeri tam bir kez görünür; corpus sütununda tekrar eden değer yoktur ve sorguyu yeniden çalıştırınca aynı satırlar döner.
+ 4 adım daha tam derste
Dersin devamı erken erişimde
Tam derste seni bekleyenler: 5 kontrol noktalı uygulama adımı, gerçek dünya kullanımı (analist + scientist + AI perspektifi), 4 yaygın tuzak, mülakat sorusu ve model cevabı, 4 soruluk quiz, 6 tekrar kartı ve NovaCommerce proje görevi.