MATERI AGREGASI
1. AGREGASI
Agregasi adalah salah satu perintah yang bisa digunakan untuk melakukan penghitungan menjadi sebuah nilai dari beberapa nilai input. Aggregate dapat digabungkan dengan sebuah parameter seperti WHERE untuk menghasilkan suatu hasil yang lebih kompleks lagi. Ada beberaapa fungsi agregasi yang di sediakan ;
- COUNT(*) untuk Menghitung jumlah baris
- SUM(NAMA KOLOM) untuk Menghitung penjumlahan data
- MAX(NAMA_KOLOM) untuk Mencari nilai terbesar
- MIN(NAMA KOLOM) untuk Mencari nilai terkecil
- AVG(NAMA KOLOM) untuk Mencari nilai rata-rata
Untuk menggunakan peritah yang mengandung agregasi kita bisa menggunakan perintah SELECT, berikut query dasar perintah agregasi :
- select count(*) from namatabel;
- select max(namakolom) from namatabel;
- select min(namakolom) from namatabel;
- select avg(namakolom) from namatabel;
2. GROUP BY
Group by ini digunakan untuk mengelompokkan kolom tertentu berdasarkan perintah SELECT. Group by ini sering digunakan bersama dengan Agregasi, digunakan sebagai pelengkap perintah yang lebih kompleks dan spesifik. Query dasar yang bisa digunakan :
- select namakolom from namatabel group by namakolom;
Berikut ini query yang diunakan bersama dengan salah satu perintah Agregasi
- select namakolom, count(*) from namatabel group by namakolom; //menggunakan perintah agregasi count
3. HAVING
Pemakaian HAVING bersama dengan GROUP BY, kegunaanya adalah untuk menentukan kondisi bagi GROUP BY, dimana kelompok yang memenuhi kondisi saja yang akan di hasilkan. Jadi apabila pada perintah SELECT yang digunakan untk menentukan kondisi adalah WHERE, tapi untuk perintah GROUP BY ini yang digunakan adalah HAVING. Contoh Query yang menggunakan perintah HAVING :
- select namakolom, sum(namakolom) from namatabel group by namakolom having sum(namakolom) = kondisi;
4. CASE
Walaupun SQL bukanlah bahasa perograman, tapi dalam prosesnya kita dapat bebas mengontrol data untuk kita tampilkan kembali. Dalam perintah SELECT kita mengenal perintah WHERE yang digunakan menentukan kondisi dari data yang ingin kita tampilkan, sedangkan CASE perbandingan dalam bentuk output kolom. Jadi intinya penggunaan CASE untuk menampilkan data tersendiri berupa kolom baru dengan data dari kolom sebelumnya yang kita manipilasi isisnya.Struktur didalam select seperti berikut :
CASE WHEN condition THEN result
[WHEN …]
[ELSE result] END
[WHEN …]
[ELSE result] END
5. VIEW
Views merupakan tabel duplikasi tetapi bukan temporary table, bukan juga merupakan sebuah tabel yang asli, tapi view ini cuma menduplikasi tabel awal dengan adanya modifikasi. Suatu view adalah suatu relasi virtual yang tidak perlu ada database tetapi dapat diproduksi atas permintaan oleh pemakai tertentu, pada ketika permintaan. Satu lagi kelebihan yang dimiliki oleh view yaitu dapat menyimpan perintah query, dan dapat mewakili sebuah subset dari tabel asli dan memilih kolom atau row tertentu dari tabel biasa. Berbeda dengan temporary tabel, view ini tidak hilang ketika kita ingin mengaksesnya lagi. Berikut query dasar untuk menampilkan view :
- create view nama_tabel_view as query;
B. PRAKTIKUM
Baiklah, sekarang langsung saja kita praktekan materi tentang agregasi dan view diatas. Disini kita akan menggunakan DBMS MySQL seperti teori di atas.
1. Penguaan Perintah Agregasi
Bagi anda yang selalu mengikuti artikel saya, bukalah kembali tabel mahasiswa dan fakultas pada bahasan artikel sebelumnya ( Baca : Perintah Dasar SQL ). Dari tabel tersebut cari nim yang paling kecil, paling tinggi dan rata rata dari nim yang ada.
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> select min(nim_mah) from mahasiswa;
- mysql> select max(nim_mah) from mahasiswa;
- mysql> select avg(nim_mah) from mahasiswa;
2. Menampilkan Rata-Rata NIM
Menampilkan rata-rata NIM ynag lebih dari 2.
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> select avg(nim_mah) from mahasiswa where nim_mah>2;
3. Modifikasi Perintah GROUP BY
Apabila pada dasar teori kita diberikan dasar query dari perintah group by, maka disini kita akan mencoba query yang lebih kompleks dari perintah group by. Menampilkan jumlah mahasiswa berdasarkan fakultas. Sehingga akan menghasilkan seperti ini ;
Nama Fakultas COUNT(*)
SAINTEK 2
PSIKOLOGI 1
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> select nama_fak, count(*) from mahasiswa, fakultas where fakultas.id_fak=mahasiswa.id_fak group by nama_fak;
4. Modifikasi Perintah HAVING
Menampilkan data sama seperti nomor 3 dengan persyaratan jumlah mahasiswa yang lebih dari 2 saja yang ditampilkan.
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> select nama_fak, count(*) from mahasiswa, fakultas where fakultas.id_fak=mahasiswa.id_fak group by nama_fak having count(*)>2;
5. Modifikasi Perintah CASE
Mungkin bagi yang melihat dasar teori diatas, pada kutipan SQL dasar dari perintah CASE akan bingung dengan bagaimana urutannya, disini kita akan langsung mempraktekannya. Menampilkan data mahasiswa dengan persyaratan, jika jenis kelaminnya “L” maka tertulis laki-laki dan bila “P” maka tertulis perempuan.
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> select*, case when gender=’L’ then ‘Laki-laki’ else ‘Perempuan’ end as Jenis_kelamin from mahasiswa;
6. Perintah VIEW
Membuat view untuk query penampilan data mahasiswa, fakultas. Ambil berdasarkan nim, nama mahasiswa, nama fakultas.
# Berikut query yang bisa kita tuliskan untuk menyelesaikan soal diatas
- mysql> create view DataMahasiswa as select nim_mah, nama_mah, nama_fak from mahasiswa, fakultas where mahasiswa.id_fak=fakultas.id_fak;
Komentar
Posting Komentar