SQL Lanjutan (Query Kompleks)

SQL Lanjutan (Query Kompleks)
SISTEM BASIS DATA | PERTEMUAN 6 DARI 10
Klik judul bagian untuk membuka atau menutup.
PERTEMUAN 6
SQL Lanjutan (Query Kompleks)
Dari data mentah menjadi informasi
Capaian: Menyusun query dengan fungsi agregat, GROUP BY/HAVING, join banyak tabel, dan subquery.
 
๐Ÿ“˜ Agregat dan Pengelompokan
  • COUNT, SUM, AVG, MAX, MIN.
  • GROUP BY mengelompokkan; HAVING menyaring kelompok.
  • WHERE menyaring baris sebelum dikelompokkan.
๐Ÿ“˜ Join dan Subquery
  • INNER JOIN: hanya pasangan yang cocok.
  • LEFT/RIGHT JOIN: pertahankan semua baris satu sisi.
  • Subquery: query di dalam query (nested).
๐Ÿงฉ Metafora
Perumpamaan: Rekap kelas: GROUP BY menumpuk berkas per kelas, HAVING memilih tumpukan yang cukup tebal.
๐Ÿงช Contoh Kasus / Kode
SELECT p.nama_prodi, COUNT(*) AS jumlah
FROM mahasiswa m INNER JOIN prodi p ON m.id_prodi = p.id_prodi
GROUP BY p.nama_prodi HAVING COUNT(*) >= 10;

SELECT m.nama, k.kode_mk FROM mahasiswa m
LEFT JOIN krs k ON m.nim = k.nim;   -- belum KRS tetap muncul (NULL)

SELECT nama FROM mahasiswa WHERE nim IN
  (SELECT nim FROM krs WHERE nilai > (SELECT AVG(nilai) FROM krs));
๐Ÿ–ผ๏ธ Ilustrasi Visual
Join dan group by
Dua tabel dihubungkan lewat kolom id_prodi, lalu hasilnya dikelompokkan dan dihitung per program studi.
๐Ÿž Kesalahan Umum
  • Memakai WHERE untuk kondisi agregat (seharusnya HAVING).
  • Kolom non-agregat tidak ada di GROUP BY.
  • Join tanpa kondisi ON.
โœ๏ธ Latihan

Tampilkan rata-rata nilai per matakuliah, hanya yang rata-ratanya di atas 75.

๐Ÿš€ Ajakan (Call to Action)
Ajakan: Buat 3 query pelaporan untuk data kampus Anda dan jelaskan arti hasilnya.
Disusun oleh ALIMIN, M.Kom