Learn
← Previous Next →

Hari 25: Mini Project — Analisis dengan CTE Bertingkat

65 min Last updated 25 Mar 2026

Mini Project: Analisis Penjualan per Kategori

Gunakan multiple CTE untuk membuat laporan penjualan berdasarkan kategori produk.

Langkah-langkah

  1. CTE 1 (item_terjual): Gabungkan detail_pesanan + produk + kategori + pesanan (filter status selesai). Hasilkan: nama_kategori, subtotal per baris.
  2. CTE 2 (per_kategori): Agregasi dari CTE 1 — GROUP BY kategori, hitung total_pendapatan dan jumlah_item.
  3. Query Akhir: Tampilkan dari CTE 2, tambahkan kolom pct_kontribusi (persentase terhadap total).
-- Petunjuk struktur
WITH item_terjual AS (
  -- JOIN 4 tabel, filter status selesai
),
per_kategori AS (
  -- GROUP BY dari item_terjual
)
SELECT
  nama_kategori,
  total_pendapatan,
  jumlah_item,
  ROUND(total_pendapatan * 100.0 / SUM(total_pendapatan) OVER (), 1) AS pct_kontribusi
FROM per_kategori
ORDER BY total_pendapatan DESC;

💡 Notice: SUM(...) OVER () tanpa PARTITION menghasilkan grand total — berguna untuk menghitung persentase.

Assignment

Implementasikan analisis penjualan per kategori menggunakan 2 CTE seperti yang dijelaskan. Tampilkan nama_kategori, total_pendapatan, jumlah_item, dan pct_kontribusi.

Expected output:

3 row(s) returned
SQL query.sql
Solution
Output
⏳ Loading DB...