Yaygın Tarih Raporları (MTD, WoW, YoY)
date_trunc ve kendi kendine birleştirmeler veya pencere işlevleriyle ay başından bugüne, haftadan haftaya ve yıldan yıla raporlar oluşturun.
Yaygın Tarih Raporları (MTD, WoW, YoY), 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.
Üç Klasik Dönem Raporu
Neredeyse her iş panosunun ihtiyacı olanlar:
- MTD — Aydan Bugüne
- Haftadan Haftaya — Haftadan Haftaya
- Yıldan Yıla — Yıldan Yıla
Aydan Bugüne
Şimdiye kadarki bu ayın toplamı:
SELECT SUM(total) AS mtd_revenue
FROM orders
WHERE created_at >= date_trunc('month', NOW())
AND created_at < date_trunc('month', NOW()) + INTERVAL '1 month';Yıl Başından Bugüne
Aynı kalıp, bu kez yıl düzeyinde:
SELECT SUM(total) AS ytd_revenue
FROM orders
WHERE created_at >= date_trunc('year', NOW());Haftadan Haftaya
Bu haftayı önceki haftayla karşılaştırın:
SELECT
SUM(total) FILTER (
WHERE created_at >= date_trunc('week', NOW())
) AS this_week,
SUM(total) FILTER (
WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '1 week'
AND created_at < date_trunc('week', NOW())
) AS last_week
FROM orders
WHERE created_at >= date_trunc('week', NOW()) - INTERVAL '1 week';Yıldan Yıla
Geçen yılın aynı dönemiyle bu dönemi karşılaştırın:
SELECT date_trunc('month', created_at) AS month, SUM(total)
FROM orders
WHERE created_at >= NOW() - INTERVAL '2 years'
GROUP BY 1
ORDER BY 1;
-- Then plot with two lines: current year, previous year.Boşluksuz Günlük Seri
Bir günde hiç sipariş olmazsa GROUP BY o günü atlar. Tam bir takvim serisi oluşturun ve LEFT JOIN kullanın:
SELECT day, COALESCE(SUM(o.total), 0) AS revenue
FROM generate_series(
CURRENT_DATE - INTERVAL '30 days',
CURRENT_DATE,
INTERVAL '1 day'
) AS day
LEFT JOIN orders o ON date_trunc('day', o.created_at) = day
GROUP BY day
ORDER BY day;Birikimli Toplamlar
Bir pencere işlevi, kendine JOIN işlemleri olmadan birikimli toplam hesaplar:
SELECT day,
revenue,
SUM(revenue) OVER (ORDER BY day) AS running_total
FROM daily_revenue
ORDER BY day;Dönemden Döneme Fark
LAG kullanarak yıldan yıla büyüme:
SELECT month,
revenue,
LAG(revenue, 12) OVER (ORDER BY month) AS prev_year,
(revenue - LAG(revenue, 12) OVER (ORDER BY month))
/ NULLIF(LAG(revenue, 12) OVER (ORDER BY month), 0) AS yoy_growth
FROM monthly_revenue;Son 7 / 30 Gün (Kayan Aralık)
Kayan aralık ile takvimle hizalanmış aralık arasında seçim yapın. İşletmenizin gerçekte neyi ifade ettiğini esas alın:
-- Trailing 7 days, ending now:
WHERE created_at >= NOW() - INTERVAL '7 days';
-- This calendar week, from Monday:
WHERE created_at >= date_trunc('week', NOW());ZONE Dikkat Edilecekler
"Bugün", kullanıcının ZONE'una bağlıdır. Kırpmadan önce dönüştürün:
SELECT date_trunc('day', created_at AT TIME ZONE 'America/Los_Angeles') AS la_day,
COUNT(*)
FROM events
GROUP BY 1;Materialised Views ile Önceden Toplulaştırma
Bir rapor her sayfa yüklemesinde çalışıyorsa, onu günde bir kez gerçekleştirin. Materialized Views bölümünde ele alınmıştır.
Özet
Dönem raporları birkaç kalıba dayanır.
- date_trunc ile yarı açık aralıklar
- Paralel dönem grupları için FILTER
- Boşlukları doldurulmuş günler için generate_series + LEFT JOIN
- Dönemden döneme farklar için LAG
Hızlı Kontrol
Hangi ifade "bu ayın ilk anını" belirtir?
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
“Yaygın Tarih Raporları (MTD, WoW, YoY)” dersi ücretsiz mi?
Evet — “Yaygın Tarih Raporları (MTD, WoW, YoY)” 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.
“Yaygın Tarih Raporları (MTD, WoW, YoY)” dersinde ne öğreneceğim?
date_trunc ve kendi kendine birleştirmeler veya pencere işlevleriyle ay başından bugüne, haftadan haftaya ve yıldan yıla raporlar oluşturun. 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.
“Yaygın Tarih Raporları (MTD, WoW, YoY)” 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
- Tarih Aritmetiği ve INTERVAL
- EXTRACT, DATE_TRUNC, AGE
- Saat Dilimleri: TIMESTAMP ve TIMESTAMPTZ
- Yaygın Tarih Raporları (MTD, WoW, YoY)