RESOURCE · Data · 10 menit
SQL JOIN + GROUP BY dengan Contoh Jawaban
Query top-10 customer + jebakan JOIN yang ngejatuhin 70% pemula.
Soalnya
Tabel orders (order_id, customer_id, tanggal, nominal) + customers (id, nama).
Jawab: siapa 10 customer revenue terbesar bulan lalu?
Query jawaban
SELECT c.nama, SUM(o.nominal) AS revenue, COUNT(*) AS n_order FROM orders o JOIN customers c ON c.id = o.customer_id WHERE o.tanggal >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month') GROUP BY c.nama ORDER BY revenue DESC LIMIT 10;
Jebakan yang menjatuhkan 70% pemula
LEFT JOIN berubah jadi INNER karena filter NULL di WHERE.
Duplikat baris karena join key tidak unik — cek COUNT DISTINCT key dulu.
Menghitung jumlah order padahal yang ditanya revenue (SUM vs COUNT).
- Cek key unik sebelum JOIN
- Spot check 1 baris manual
- Tulis grain (per apa angka ini?) di komentar query
Cara menulis insight (3 baris)
"3 customer teratas menyumbang 41% revenue (Rp54jt dari Rp132jt). Rata-rata order mereka Rp1,3jt vs rata-rata umum Rp480rb. Rekomendasi: tawarkan paket langganan ke 3 teratas sebelum belanja iklan baru."
Angka spesifik + perbandingan + rekomendasi = insight. Tanpa itu = laporan.
Checklist
- Query pakai 2 tabel + GROUP BY?
- Spot check 1 baris cocok?
- Insight ada angka + rekomendasi?
- File .sql beromentar tersimpan?
MENTOK ATAU RAGU ARAH?
bawa hasil belajarmu ke sesi 1-on-1Semua materi bebas dipelajari. Kalau mentok positioning, portfolio, atau strategi apply, kita bedah bareng.