Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

SQL untuk Gudang Data

Pelajaran 13 dari 16

Analitik di atas skema bintang

Agregasi berlapis dan fakta berbeda grain

Setelah pelajaran ini kamu bisa meringkas data dalam dua tahap pada grain yang benar dan membandingkan dua tabel fakta berbeda grain tanpa menggandakan nilai.

±13 menitDiperiksa 3 Okt 2026

Materi

Banyak pertanyaan analisis butuh dua kali agregasi. Rata-rata nilai per nota tidak bisa dihitung dengan AVG(nilai_penjualan) di fakta berbutir baris nota, karena itu rata-rata per baris. Langkah pertama meringkas ke grain nota (SUM per no_nota), langkah kedua merata-ratakan hasilnya. CTE dari kelas SQL Lanjutan memberi nama pada setiap tahap sehingga urutan logikanya terbaca dari atas ke bawah.

-- Apotek: rata-rata nilai per resep, bukan per baris obat
WITH per_resep AS (
  SELECT apotek_key, no_resep, SUM(nilai) AS nilai_resep
  FROM fakta_obat_keluar
  GROUP BY apotek_key, no_resep
)
SELECT apotek_key, ROUND(AVG(nilai_resep)) AS rata_resep
FROM per_resep
GROUP BY apotek_key;

Pola yang sama berlaku saat membandingkan dua tabel fakta. Microsoft mencontohkan fakta penjualan berbutir tanggal dan fakta target berbutir kuartal; target Lentera berbutir bulan per cabang. Kedua fakta tidak boleh di-JOIN baris demi baris, karena setiap baris target akan bertemu banyak baris penjualan dan nilai target ikut terjumlah berkali-kali. Cara yang benar: ringkas penjualan lebih dulu ke grain target, lalu gabungkan dua hasil ringkasan itu lewat dimensi yang sama. Tabel fakta agregat, yaitu ringkasan fakta dasar ke dimensi yang lebih sedikit, adalah bentuk tersimpan dari tahap pertama ini dan dipakai untuk mempercepat kueri yang sering diulang.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Seorang analis menulis JOIN fakta_penjualan dengan fakta_stok pada cabang_key dan produk_key, lalu menjumlahkan nilai_penjualan. Hasilnya lebih besar dari total penjualan sebenarnya untuk produk yang ada di fakta_stok. Mengapa?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi