![Page 1: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/1.jpg)
HanungNP/Basis Data/Politel/2012
![Page 2: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/2.jpg)
Lanjutan perintah Select (2)
• Like
• Agregate Function (fungsi agregasi)
• Having (with group by)
• Case ‘MIX’• Case ‘MIX’
HanungNP/Basis Data/Politel/2012
![Page 3: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/3.jpg)
Like
• SELECT * FROM nama_table
• WHERE nama_kolom LIKE ‘content%’
atau
• SELECT * FROM nama_table• SELECT * FROM nama_table
• WHERE nama_kolom LIKE ‘%content’
Atau
SELECT * FROM nama_table
• WHERE nama_kolom LIKE ‘%content%’
HanungNP/Basis Data/Politel/2012
![Page 4: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/4.jpg)
karakter
karakter keterangan
+ Kata ini harus ada pada pencarian
- Kata ini tidak boleh ada dalam pencarian- Kata ini tidak boleh ada dalam pencarian
> Kata ini lebih diutamakan
< Kata ini tidak diutamakan
* Mencari sembarang karakter
HanungNP/Basis Data/Politel/2012
![Page 5: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/5.jpg)
Gabungan Like & Join
Menampilkan nama anggota dan judul bukuyang diawail huruf W dan terdiri dariMINIMAL 8 huruf
SELECT nama_anggota, judul_buku
FROM anggota, buku, peminjaman
WHERE buku.id_buku = peminjaman.id_buku
AND judul_buku LIKE 'W_______%';
HanungNP/Basis Data/Politel/2012
![Page 6: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/6.jpg)
Agregate Function
Fungsi Agregat:
• MIN(),
• MAX(),
• AVG(),• AVG(),
• SUM(),
• COUNT()
HanungNP/Basis Data/Politel/2012
![Page 7: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/7.jpg)
Contoh tabel employee
HanungNP/Basis Data/Politel/2012
![Page 8: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/8.jpg)
Function dasar
• SELECT COUNT(*) FROM employee;
• select SUM(salary) FROM employee;
• select MAX(salary) FROM employee;
• select MIN(salary) FROM employee;• select MIN(salary) FROM employee;
• select AVG(salary) FROM employee;
HanungNP/Basis Data/Politel/2012
![Page 9: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/9.jpg)
• Beberapa aggregate functions bisadigabungkan dalam satu perintah SQL
Bisa menambahkan ekspresi aritmetika:
SELECT SUM(saldo + 1000) FROM rekening;SELECT SUM(saldo + 1000) FROM rekening;
SELECT SUM(saldo) + 1000 FROM rekening;
SELECT MAX(saldo) - MIN(saldo) FROMrekening;
HanungNP/Basis Data/Politel/2012
![Page 10: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/10.jpg)
Sintax umum
• SELECT daftar_kolom_non_fungsi_ag,fungsi_ag(nama_kolom1),
fungsi_ag(nama_kolom2)
• FROM daftar_tabel• FROM daftar_tabel
• WHERE syarat_dan_atau_foreign_key
• GROUP BY daftar_kolom_non_fungsi_ag
HanungNP/Basis Data/Politel/2012
![Page 11: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/11.jpg)
Agregate Function, Group By
• SELECT designation, MIN(salary) , MAX(salary)FROM employee
GROUP BY designation;
HanungNP/Basis Data/Politel/2012
![Page 12: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/12.jpg)
SELECT kolom1, SUM( kolom2 * kolom3) total
FROM nama_tabel
GROUP BY kolom1;
HanungNP/Basis Data/Politel/2012
![Page 13: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/13.jpg)
Dalam Group by
• Yang harus diperhatikan ketika menggunakan GROUP BYJika menggunakan GROUP BY, semua field yang ingin ditampilkandalam SELECT harus tercantum di GROUP BY.
• Contoh yang salah:– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi;GROUP BY jenis_transaksi;
atau– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY tanggal;
• Contoh yang benar:– SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi, tanggal;
HanungNP/Basis Data/Politel/2012
![Page 14: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/14.jpg)
HAVING
• Merupakan pasangan dari GROUP BY, digunakan untukmembatasi kelompok yang ditampilkan:
SELECT jenis_transaksi, tanggal FROM transaksiGROUP BY jenis_transaksi, tanggalHAVING jenis_transaksi = ‘kredit’;HAVING jenis_transaksi = ‘kredit’;
• Hasil yang sama bisa didapatkan dengan:
SELECT jenis_transaksi, tanggal FROM transaksiWHERE jenis_transaksi = ‘kredit’GROUP BY jenis_transaksi, tanggal;
HanungNP/Basis Data/Politel/2012
![Page 15: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/15.jpg)
Dalam Having
Yang harus diperhatikan:
1. Jika menggunakan HAVING, maka pembatasandilakukan setelah hasil dikelompokkan dalamGROUP BY.GROUP BY.
2. Jika menggunakan WHERE, maka pembatasandilakukan sebelum hasil dikelompokkan dalamGROUP BY.
3. Field(-field) yang disebut di HAVING harus ada diGROUP BY, atau berupa aggregate functions.
HanungNP/Basis Data/Politel/2012
![Page 16: Basis Data 6 Select Statement (2) · 2. Jika menggunakan WHERE, maka pembatasan dilakukan sebelum hasil dikelompokkan dalam GROUP BY. 3. Field(-field) yang disebut di HAVING harus](https://reader031.vdocuments.site/reader031/viewer/2022022117/5c9adbff09d3f2f16c8cb471/html5/thumbnails/16.jpg)
Contoh dengan HAVING:
SELECT kode_cabang, SUM(saldo), COUNT(*)FROM rekeningGROUP BY kode_cabangGROUP BY kode_cabangHAVING SUM(saldo) >= 5000000
HanungNP/Basis Data/Politel/2012