I. Tujuan Pratikum Agar mahasiswa dapat menggunakan group function dalam perintah SQL untuk menampilkan data, dapat mengidentifikasi group function yang tersedia. Memahami kegunaan group function, memahami kegunaan GROUP BY, dan mengerti kegunaan perintah HAVING.
II. Bahan & Alat Hardware berupa PC/laptop, Software Oracle Database 10g, dan modul pratikum
III. Metode yang digunakan Untuk melaksanakan pratikum ini, anda harus sudah menginstall oracle database 10g, membuka lock user HR, mengerti tentang class diagram Human Resources, melakukan koneksi ke database oracle menggunakan iSQLPlus, dan mengerti penggunaan perintah select, from, where, order by dan sudah memahami kegunaan single row functions.
IV. Landasan Teori Group Functions bekerja pada sejumlah baris (data) dan selalu menghasilkan hanya satu nilai per group.
Jenis-jenis group Functions :
AVG Digunakan untuk mencari nilai rata-rata dari sekumpulan data. COUNT Digunakan untuk menghitung jumlah baris dalam sebuah tabel. MAX Digunakan untuk mencari nilai terbesar dari sekumpulan data. MIN Digunakan untuk mencari nilai terkecil dari sekumpulan data STDDEV SUM Digunakan untuk menjumlahkan keseluruhan nilai. VARIANCE Group Function digunakan untuk pengolahan data dengan jumlah yang banyak dan menghasilkan hanya satu keluaran. Sintaks Group Functions :
SELECT : untuk mengambil data yang diinginkan, bisa terdiri atas nama field ataupun nama group function. FROM : untuk menyebutkan nama tabel pencarian WHERE : untuk memberi batasan terhadap data yang akan dicari GROUP BY : pengelompokan data menjadi bagian-bagian yang lebih kecil, biasanya selalu sama dengan nama field yang diselect ORDER BY : mengurutkan data sesuai dengan yang diinginkan.
Fungsi AVG dan SUM digunakan hanya untuk tipe data number Fungsi MIN dan MAX digunakan untuk tipe data number, karakter dan date. COUNT(*) akan menghitung jumlah baris yang terdapat dalam sebuah tabel, tanpa melihat isinya bernilai null atau tidak. COUNT(expr) digunakan untuk menghitung jumlah record yang tidak berupa nilai null. COUNT(DISTINCT expr) digunakan untuk menghitung jumlah record yang unik saja, jika terdapat data yang sama maka akan dihitung sebagai satu record.
Membuat Pengelompokan Data
Sintaks penulisan :
Mengelompokkan data menjadi kelompok yang lebih kecil menggunakan perintah GROUP BY. Pengelompokan Lebih dari Satu Kolom
Contoh kesalahan yang terjadi pada pengelompokan data
Beberapa hal yang diperhatikan pada saat penggunaan group by : Klausa Where tidak bisa digunakan untuk membatasi group Klausa having digunakan untuk membatasi group Tidak bisa menggunakan group function dalam klausa where
Ketika terdapat klausa HAVING pada sebuah queri maka Oracle Server akan melakukan tahap-tahapan berikut : Baris atau record akan dikelompokkan terlebih dahulu Kemudian group function yang digunakan akan bekerja Data yang ditampilkan adalah data yang sesuai dengan klausa HAVING. Sintak penulisan group functions dengan klausa having :
V. Bahan Pratikum 1. Tuliskan perintah SQL untuk menghitung rata-rata gaji pegawai, gaji terbesar, gaji terkecil, dan total keseluruhan gaji untuk semua employees yang mempunyai job id mengandung karakter REP.
2. Tuliskan perintah SQL untuk menghitung tanggal kerja terlama dan tanggal kerja terbaru dari semua employees.
3. Tuliskan perintah SQL untuk mengitung jumlah pegawai yang bekerja pada department_id = 50.
4. Tuliskan perintah SQL untuk mengitung jumlah pegawai yang bekerja pada department_id = 80, khusus bagi pegawai yang mempunyai komisi.
5. Menghitung jumlah departmet id yang terdaftar pada tabel employees, jika terdapat deparment id dalam jumlah banyak maka akan dihitung 1.
6. Menghitung komisi rata-rata dari keseluruhan employees, jika tidak mempunyai komisi atau null maka tidak diikutkan untuk mendapatkan nilai-rata-rata.
7. Menghitung komisi rata-rata dari keseluruhan employees, termasuk pegawai yang tidak mempunyai commission_pct (bernilai null).
8. Menampilkan department_id dan Menghitung gaji rata-rata employees per department_id.
9. Menghitung gaji rata-rata employees per department_id, tanpa menampilkan department_id yang bersangkutan.
10. Menampilkan data department id dengan nama alias dept_id, job id, menjumlahkan semua gaji employees dan dikelompokkan berdasarkan department_id dan job_id.
11. Menampilkan department_id dan gaji terbesar per grup department_id dan yang ditampilkan hanya gaji terbesar diatas 10000 saja.
12. Menampilkan job_id dan total salary per group job_id dengan memberi nama alias PAYROLL, total yang dicari untuk job_id yang tidak mengandung karakter REP, data yang ditampilkan hanya untuk total gaji diatas 13000 saja dan urutkan berdasarkan total gaji dari terkecil ke terbesar.
13. Menampilkan gaji rata-rata terbesar dari tabel employees kelompokkan berdasarkan department_id.
14. Terdapat Struktur tabel sebagai berikut :
a. Tuliskan queri untuk menampilkan jumlah FPP terbesar, jumah FPP terkecil dan jumlah FPP Rata-rata yang pernah diajukan oleh anggota koperasi. Jawab :
b. Tuliskan queri untuk untuk menampilkan nama anggota koperasi yang pernah meminjam dengan jumlah FPP terbesar. Jawab :
c. Tuliskan queri untuk menghitung jumlah anggota yang pernah meminjam dikelompokkan berdasarkan bulan permohonan peminjaman selama tahun 2013, urutkan berdasarkan jumlah anggota dari terbesar ke terkecil. Jawab :
d. Tuliskan queri untuk menghitung total FPP yang pernah diajukan anggota dikelompokkan berdasarkan bulan permohonan peminjaman selama tahun 2013, dan yang ditampilkan hanya total FPP yang diatas 100.000.000,- urutkan berdasarkan total FPP dari terkecil ke terbesar. Jawab :
VI. Daftar Pustaka Reporting Aggregated Data Using the Group Functions, Oracle Database 10g. SQL Fundamentals I (D17108GC21),Edition 2.1, December 2006.