Bab 5 dari 6 · 25 menit
Fungsi Agregasi, Pengelompokan, dan Relasi Tabel
Pengolahan data tingkat lanjut membutuhkan kemampuan untuk merangkum baris data numerik serta menghubungkan entitas data yang tersebar di beberapa tabel yang saling berhubungan.
Fungsi agregat SQL memproses sekumpulan baris nilai untuk menghasilkan satu nilai ringkasan. Fungsi agregat utama yang sering digunakan meliputi:
COUNT(): Menghitung banyaknya baris.COUNT(*)menghitung seluruh baris termasuk baris dengan data kosong, sedangkanCOUNT(kolom)mengabaikan nilai NULL.SUM(): Menghitung total penjumlahan nilai numerik.AVG(): Menghitung nilai rata-rata numerik.MIN(): Mengambil nilai paling kecil.MAX(): Mengambil nilai paling besar.
Untuk menyusun ringkasan berdasarkan kategori tertentu, kamu menggabungkan fungsi agregat dengan klausa GROUP BY. Bila kamu ingin menyaring data hasil pengelompokan tersebut, kamu harus menggunakan HAVING, bukan WHERE.
Perbedaan pentingnya adalah:
WHEREmenyaring baris individual sebelum data dikelompokkan.HAVINGmenyaring hasil kelompok setelah fungsi agregat dihitung.
Dalam basis data relasional, informasi umumnya dinormalisasi ke beberapa tabel terpisah. Kamu menyatukan kembali data tersebut menggunakan teknik JOIN dengan memanfaatkan kecocokan kolom penghubung pada klausa ON:
- INNER JOIN: Mengembalikan baris jika terdapat kecocokan di kedua belah tabel.
- LEFT JOIN: Mengembalikan seluruh baris dari tabel kiri beserta data yang cocok dari tabel kanan (bernilai NULL jika tidak berpadanan).
- RIGHT JOIN: Mengembalikan seluruh baris dari tabel kanan beserta data yang cocok dari tabel kiri.
- FULL JOIN: Mengembalikan seluruh baris dari kedua tabel tanpa terkecuali.
Selain JOIN, kamu dapat memanfaatkan Subquery (query bersarang di dalam query lain). Subquery dieksekusi terlebih dahulu oleh basis data, kemudian hasilnya dijadikan parameter masukan bagi query luar:
Cek pemahaman
1. Klausa manakah yang harus kamu gunakan jika ingin memfilter data kelompok berdasarkan hasil fungsi agregasi?
2. Penggunaan COUNT(*) dan COUNT(nama_kolom) selalu menghasilkan nilai angka yang persis sama dalam semua kondisi data.
3. Hasil apa yang diberikan oleh operasi INNER JOIN antar dua tabel?



