Senaryo
Ilgaz Bank'ın pazarlama direktörü yeni yıl kampanyası için senden bir analiz istiyor: “Hangi segment ne kadar harcıyor, ne zaman ve nerede? Maaşını bize yatıranlar daha mı çok harcıyor? Bize segment bazında tek sayfalık bir özet ver.”
Teslim edilecekler
- Segment profili (müşteri, yaş, risk)
- Aylık harcama trendi ve büyüme
- Segmentlere göre en çok harcanan kategori
- Maaş müşterisi olanlarla olmayanların karşılaştırması
- Kanal tercihleri
- Segment bazında yönetici özeti
Çalışma yöntemiHer adımda önce sonucun bir satırının neyi temsil edeceğini belirle (segment mi, müşteri mi, ay mı?). Ara hesapları CTE ile adlandır. Bitirdiğinde adımların sorgularını bir dosyada topla: bu senin portföy işin olur.
Tablolar: bank_customers, bank_accounts, bank_txns. Kart harcamaları txn_type = 'kart_harcama', tutarlar eksi işaretlidir.
Derinleş: analizi karara bağlamak
Brif: Pazarlama direktörü“Yeni yıl kampanyasının bütçesi sınırlı. Hangi segmente, hangi kategoriyle, hangi kanaldan gideceğimize karar vereceğim. Bana tek sayfalık özet ve kampanyaya alınabilecek müşteri sayısını getir.”
Çalışma planı
- Veriyi tanı.
bank_txns42.284 hareket, 2024'ün tamamı. Aşağıdaki sorgu türlere göre adedi, toplamı ve kategorinin boş olduğu satırları verir: işyeri kategorisi yalnızca kart harcamalarında dolu, diğer tüm türlerde NULL. Bu hata değil, tasarım. - İşareti sabitle. Harcamalar eksi işaretli; raporda pozitif göstermek için
-amountkullan ve bunu not et. - Satırın neyi temsil ettiğine karar ver. Müşteri başına ortalama istiyorsan önce müşteri düzeyine topla; bir müşterinin birden fazla hesabı vardır (500 müşteri, 849 hesap).
- Varsayımlar. “Maaşlı” = yıl içinde en az bir
maashareketi; harcaması olmayan müşteri 0 sayılır.
SELECT txn_type, COUNT(*) AS adet, ROUND(SUM(amount), 0) AS toplam,
SUM(CASE WHEN merchant_category IS NULL THEN 1 ELSE 0 END) AS kategori_bos
FROM bank_txns
GROUP BY txn_type
ORDER BY adet DESC, txn_type;
Kontrol listesi
- Mutabakat. Aylık harcamaların toplamı, segment toplamlarının toplamı ve ham tablodaki kart harcaması toplamı aynı olmalı: 63.840.506 TL (Ek görev 1).
- JOIN sonrası satır sayısı. Hareket → hesap → müşteri birleşimi hareket sayısını değiştirmemeli (her hareketin tek hesabı var). Müşteri sayarken
COUNT(DISTINCT customer_id)kullan. - Payda. “Maaş oranı” müşterinin oranıdır, hesabın değil. KOBİ ve Özel Bankacılık'ta oran 0: bu bir hata mı, yoksa bu segmentlerin maaş ödemesi mi yok? Yorumda belirt.
- Uç değer. Kişi başı harcamada birkaç çok yüksek müşteri ortalamayı yukarı çeker; en büyük 5 değere bak.
Teslim
Segment özeti tablosu, aylık trend için çizgi grafik, maaşlı/maaşsız için iki sütunluk karşılaştırma.
Yönetici özeti örneğiKart harcaması 2024'te 63,8 milyon TL; aylık seviye 4,9–5,8 milyon TL bandında, belirgin bir mevsimsellik yok. Bireysel segmentte maaş müşterileri yılda kişi başı 134.992 TL harcıyor, maaşsızlardan %26 fazla; her segmentte ilk kategori elektronik. Kampanya için pazarlama izni olan, maaşsız ve yıllık 100.000 TL üstü harcayan 49 Bireysel müşteri öncelikli hedef: maaş taşıma teklifi elektronik kampanyasıyla birleştirilmeli.
Kendini değerlendir
| Ölçüt | Başlangıç | İyi | Mükemmel |
|---|---|---|---|
| Doğruluk | Adımlar çalışıyor | İşaret, payda ve müşteri düzeyi doğru | Üç yoldan mutabakat sıfır fark veriyor |
| Analiz | Her adım ayrı | Adımlar birbirine bağlanmış | Bulgular hedef kitle önerisine dönüşmüş |
| Teslim | Sorgu dosyası | Tablo + grafik | Tek sayfa: özet, kitle büyüklüğü, varsayımlar |