Ana içeriğe geç
Kesit SQL
Orta · Veri Analisti

Büyüme analizi: MoM ve YoY

Aydan aya ve yıldan yıla büyüme oranları.

Uygulamada aç, 3 alıştırmayı çözÜcretsiz, hesap gerekmez, kurulum yok.

Bu sayfa dersin okuma sürümüdür. Metin bir kutuyu çalıştırmanı ya da adıma geçmeni söylüyorsa dersi uygulamada aç.

Büyüme oranı

büyüme = (bu dönem − önceki dönem) / önceki dönem

WITH aylik AS (
  SELECT strftime('%Y-%m', o.order_date) AS ay,
         SUM(oi.quantity * oi.unit_price * (1 - oi.discount)) AS ciro
  FROM orders o JOIN order_items oi ON oi.order_id = o.order_id
  WHERE o.status = 'delivered'
  GROUP BY ay
)
SELECT ay, ROUND(ciro) AS ciro,
       ROUND(100.0 * (ciro / LAG(ciro, 1) OVER (ORDER BY ay) - 1), 1) AS mom_yuzde,
       ROUND(100.0 * (ciro / LAG(ciro, 12) OVER (ORDER BY ay) - 1), 1) AS yoy_yuzde
FROM aylik
ORDER BY ay;
LAG(x, 12) ancak her ay varsa doğrudurEksik ay varsa 12 satır geri gitmek 12 ay geri gitmek demek değildir. Güvenli yol: önce ay iskeleti üret veya geçen yılın ayıyla self join yap.
WITH aylik AS (
  SELECT strftime('%Y', order_date) AS yil, strftime('%m', order_date) AS ay, COUNT(*) AS siparis
  FROM orders GROUP BY yil, ay
)
SELECT b.ay, a.siparis AS s2023, b.siparis AS s2024,
       ROUND(100.0 * (b.siparis - a.siparis) / a.siparis, 1) AS yoy
FROM aylik b JOIN aylik a ON a.ay = b.ay AND a.yil = '2023'
WHERE b.yil = '2024'
ORDER BY b.ay;
Alıştırmalara geç (3)