::: BELAJAR SQL (LANJUT) 2 :::
Kalau pada bagian pertama kita telah belajar hingga perintah GROUP BY maka untuk kali ini kita akan mempelari perintah yang mengikuti GROUP BY yaitu perintah HAVING.
HAVING
Perintah Having digunakan setelah perintah Group By untuk melakukan pengelompokan dengan kriteria yang lebih spesifik.
Bila pada pertemuan pertama, kita mencoba mencari gaji maksimum dari pegawai baru berdasarkan pendidikannya maka dengan perintah Having kita dapat menambahkan dengan kriteria lain, misalnya hanya pegawai bergaji dibawah 400000 saja yang diproses. Bila anda masih bingung, contoh dibawah ini akan lebih jelas :
Pembelian
Pembeli | Barang | Harga |
Saiful | Gitar | 400000 |
Saleh | Stik Drum | 50000 |
Saiful | Simbal | 300000 |
Bakir | Gitar | 500000 |
Saiful | Gitar | 500000 |
Bakir | Senar Bass | 100000 |
Rohmat | Gitar | 300000 |
Dari tabel Pembelian diatas, kita ingin menampilkan nama-nama pembeli, berapa kali mereka melakukan transaksi dan total harga yang mereka keluarkan. Untuk tampilan seperti ini, kita cukup menggunakan Group By saja :
select Pembeli,count(Pembeli),sum(Harga)
from Pembelian
GROUP BY Pembeli;
Tapi bagaimana bila yang ingin kita proses hanya pembeli yang melakukan transaksi lebih dari 1 kali saja ? Jawabannya, kita harus tambahkan Having seperti dibawah ini :
select Pembeli,count(Pembeli),sum(Harga)
from Pembelian
GROUP BY Pembeli
HAVING count(Pembeli) > 1;
Hasilnya:
Saiful | 3 | 1200000 |
Bakir | 2 | 600000 |
AND,BETWEEN,OR,IN
AND adalah perintah untuk menggabungkan kedua kondisi yang keduanya harus dipenuhi.
Misalkan kita memiliki tabel seperti ini:
Nilai_siswa
Nama | Nilai |
Budi | 80 |
Agung | 70 |
Roni | 90 |
Edi | 70 |
Lulu | 60 |
Sinta | 80 |
Yuni | 90 |
Maka bila kita ingin menampilkan nama siswa yang memiliki nilai antara 70 hingga 90, perintahnya adalah:
select Nama
from Nilai_siswa
where Nilai>=70 AND Nilai<=90;
Perintah diatas dapat pula diganti menggunakan perintah BETWEEN seperti ini:
select Nama
from Nilai_siswa
where Nilai BETWEEN 70 AND 90;
OR adalah perintah untuk menggabungkan dua/lebih kondisi yang paling tidak salah satunya harus terpenuhi.
Contoh : Dari tabel Nilai_siswa, kita ingin tampilkan nilai siswa yang namanya Lulu atau Lala.
Perintahnya:
select Nilai
from Nilai_siswa
where Nama='Lulu' or Nama='Lala';
Hasilnya:
60 |
Dengan perintah OR maka bila tidak ada nama Lala, ia akan mencari nama Lulu, begitupula sebaliknya. Perintah diatas juga dapat diubah dengan menggunakan perintah IN, seperti dibawah ini:
select Nilai
from Nilai_siswa
where Nama IN ('Lulu','Lala');
Kebalikan dari perintah IN dan BETWEEN adalah NOT IN dan NOT BETWEEN.
Created at Sep 5 2002