SQL Academy · Ders

Devam Eden Toplamlar ve Hareketli Ortalamalar

SUM(...) OVER (ORDER BY ... ROWS BETWEEN ...) ile devam eden toplamları ve hareketli ortalamaları hesaplayın.

4. ders / 413 adım

Devam Eden Toplamlar ve Hareketli Ortalamalar, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Artan Toplamın Temelleri

Artan toplam, pencerede ORDER BY kullanılan ve çerçeve yan tümcesi içermeyen bir SUM işlemidir; bu nedenle varsayılan çerçeve "başlangıçtan geçerli satıra kadar"dır:

SELECT day, revenue,
       SUM(revenue) OVER (ORDER BY day) AS running_total
FROM daily_revenue
ORDER BY day;

Grup Başına Artan Toplam

Artan toplamı kullanıcı başına sıfırlayın:

SELECT id, user_id, total,
       SUM(total) OVER (
         PARTITION BY user_id ORDER BY created_at
       ) AS user_running_total
FROM orders;

Hareketli Ortalama

N günlük hareketli ortalama, bir ROWS çerçevesi kullanır:

SELECT day, revenue,
       AVG(revenue) OVER (
         ORDER BY day
         ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
       ) AS avg_7d
FROM daily_revenue;

Merkezlenmiş Hareketli Ortalama

Merkezlenmiş 7 günlük pencere (3 önceki, geçerli ve 3 sonraki):

SELECT day, revenue,
       AVG(revenue) OVER (
         ORDER BY day
         ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING
       ) AS avg_7d_centred
FROM daily_revenue;

Birikimli Dağılım

Her güne kadar toplam gelirin hangi bölümüne ulaştık?

SELECT day, revenue,
       SUM(revenue) OVER (ORDER BY day)
         / SUM(revenue) OVER ()  AS cum_share
FROM daily_revenue;

ROWS ve RANGE

  • ROWS — satırları fiziksel olarak sayar (önceki/sonraki N satır)
  • RANGE — değerler arasında mantıksal bir aralık oluşturur (ör. tarih değerine göre 7 gün)
-- ROWS: 6 previous rows + this one (may skip dates with no data)
AVG(revenue) OVER (ORDER BY day ROWS BETWEEN 6 PRECEDING AND CURRENT ROW)

-- RANGE: include any row with a day within '6 days' of the current row
AVG(revenue) OVER (ORDER BY day RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW)

Birikimli Maksimum

Her noktadaki şimdiye kadarki en iyi değer:

SELECT day, total_users,
       MAX(total_users) OVER (ORDER BY day) AS peak_so_far
FROM daily_metrics;

Birikimli Sayım

Bu satıra kadar görülen toplam olay sayısı:

SELECT id, ts,
       COUNT(*) OVER (ORDER BY ts) AS events_so_far
FROM events;

Anormallikleri Belirleme

Bugünkü geliri hareketli temel değerle karşılaştırın:

SELECT day, revenue, avg_7d,
  CASE WHEN revenue < 0.5 * avg_7d THEN 'WARNING' ELSE 'OK' END AS status
FROM (
  SELECT day, revenue,
         AVG(revenue) OVER (ORDER BY day ROWS BETWEEN 7 PRECEDING AND 1 PRECEDING) AS avg_7d
  FROM daily_revenue
) sub;

Başlangıçtaki NULL Değerleri

7 satırlık bir pencereyle ilk 6 satırda NULL/kısmi ortalamalar bulunur. Bunları gizleyip gizlemeyeceğinize veya kısmi pencereleri geçerli kabul edip etmeyeceğinize karar verin.

Performans

Artan toplama işlemleri, bölüme göre sıralanmış girdi gerektirir. ORDER BY sütunu üzerindeki bir indeks sıralamayı önler.

Özet

Çerçeveler, artan hesaplamaların önünü açar.

  • ORDER BY içeren varsayılan çerçeve = "başlangıçtan geçerli satıra kadar"
  • ROWS BETWEEN n PRECEDING AND CURRENT ROW = hareketli pencere
  • Pencereler üzerinde SUM/AVG/MAX = birikimli veya hareketli hesaplama

Kısa Kontrol

Geçerli satıra kadar 7 günlük hareketli ortalamayı hangi çerçeve yan tümcesi verir?

Başlamak ücretsiz

Yapay zeka eğitmeniyle SQL öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
46
Dersler
183

Sıkça Sorulan Sorular

“Devam Eden Toplamlar ve Hareketli Ortalamalar” dersi ücretsiz mi?

Evet — “Devam Eden Toplamlar ve Hareketli Ortalamalar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Devam Eden Toplamlar ve Hareketli Ortalamalar” dersinde ne öğreneceğim?

SUM(...) OVER (ORDER BY ... ROWS BETWEEN ...) ile devam eden toplamları ve hareketli ortalamaları hesaplayın. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Devam Eden Toplamlar ve Hareketli Ortalamalar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. OVER, PARTITION BY, ORDER BY
  2. ROW_NUMBER, RANK, DENSE_RANK
  3. LAG, LEAD ve Zaman Serisi Kalıpları
  4. Devam Eden Toplamlar ve Hareketli Ortalamalar
← SQL Academy Sayfasına Dön