TUGAS
MODUL VI
6.2 LATIHAN
1. Hitung
jumlah pekerja pria pada setiap job yang ada.
Query :
select job, count(job) as jumlah_pekerja_pria from employee where sex = 'M' group by job;
Penjelasan:
Pada query diatas,
perintah select untuk melihat atau menampilkan field dalam tabel. Yang ingin ditampilkan yaitu job, count (job) yaitu menghitung jumlah pekerja pria dalam
field job yang diinisialkan sebagai kolom jumlah_pekerja_pria dari tabel
employee dimana syarat/ kondisinya jumlah pekerja pria yang ditampilkan adalah
pekerja yang berjenis kelamin pria( where sex = ‘M’), M disini adalah Male yang
berarti pria. Group by digunakan untuk mengelompokkan data, data diatas
dikelompokkan berdasarkan job.
2. Hitung
total gaji yang di dapat dari setiap department yang lebih dari 200000.
Tampilkan juga nama departmentnya
dan hasil query tidak boleh NULL.
Query:
select d.deptno, d.deptname, sum(salary) as total_gaji from
employee e , department d where
e.workdept = d.deptno
group by d.deptname, d.deptno
having sum (salary) > 200000;
Penjelasan:
Dari query diatas, ditampilkan
deptno dari tabel department, deptname dari tabel department, jumlah gaji yang
diinisialkan dengan nama total_gaji dari tabel employee. Dengan department diinisialkan d dan employee diinisialkan e, dengan syarat/ kondisinya workdept
pada tabel employee = deptno pada tabel department. SUM diatas gunanya untuk menghitung jumlah record (salary) dalam data berkelompok yang bisa digunakan GROUP BY untuk mengelompokkannya berdasarkan deptname dan deptno dari tabel department. Lalu disaring baris yang diinginkan dalam data (salary) yang sudah dikelompokkan dengan
menggunakan HAVING, dengan ketentuan salary lebih besar dari 200000.
3. Tampilkan
total project yang dikerjakan oleh setiap department yang ada dan tampilkan nama
departmentnya.
Query:
select d.deptno, d.deptname, count (projno) as total_project from
project p , department d where p.deptno = d.deptno
group by d.deptname, d.deptno order by deptname;
Penjelasan:
Pada query diatas,
perintah select digunakan untuk menampilkan atau melihat field dalam tabel
dimana yang ditampilkan yaitu deptno dan deptname dari tabel department, projno
dari tabel project yang diinisialkan sebagai total_project dengan ketentuan d
yaitu pemisalan tabel department dan p untuk tabel project dimana syarat/
kondisinya yaitu deptno pada tabel project = deptno yang ada pada tabel
department. COUNT gunanya untuk menghitung jumlah baris dalam kolom projno,
karena masing-masing project pasti memiliki projno yang berbeda , jadi dengan
projno kita bisa mengetahui ada berapa banyak jumlah project yang dikerjakan
oleh setiap department tersebut. Data dikelompokkan dengan syntax GROUP BY
berdasarkan deptname dan deptno dari tabel department dan diurutkan berdasarkan
deptname.
4. Hitung
jumlah karyawan/pekerja di setiap departemen. Data yang harus ditampilkan
adalah sbb:
-
nomor departemen
-
nama departemen
-
jumlah karyawan urutkan data tersebut berdasarkan "nama departemen"
secara "descending" (z ke a)
Query:
select d.deptno, d.deptname, count (empno) as jml_karyawan from
employee e , department d where
e.workdept = d.deptno
group by d.deptname, d.deptno order by deptname desc;
Penjelasan:
Pada query diatas,
perintah select digunakan untuk menampilkan atau melihat field dalam tabel
dimana yang ditampilkan yaitu deptno dan deptname dari tabel department, empno
dari tabel employee yang diinisialkan sebagai jml_karyawan dengan ketentuan d
yaitu pemisalan tabel department dan e untuk tabel employee dimana syarat/
kondisinya yaitu workdept pada tabel employee = deptno yang ada pada tabel
department. COUNT gunanya untuk menghitung jumlah baris dalam kolom empno,
karena masing-masing karyawan pasti memiliki empno yang unik dan berbeda satu
sama lain, jadi dengan empno kita bisa mengetahui ada berapa banyak jumlah
karyawan dalam department tersebut. Data dikelompokkan dengan syntax GROUP BY
berdasarkan deptname dan deptno dari tabel department dan diurutkan berdasarkan
deptname yang disusun secara descading (Z ke – A).
5. Tampilkan
nama departement dan jumlah pekerja yang usianya lebih dari 50 tahun di tiap departemen dari tabel employee.
Query:
select d.deptname, count (empno) as jml_karyawan from
employee e , department d where
e.workdept = d.deptno and
year (birthdate) < 1963 group by d.deptname;
Penjelasan:
Pada query diatas,
perintah select digunakan untuk menampilkan atau melihat field dalam tabel
dimana yang ditampilkan yaitu deptname dari tabel department, empno dari tabel
employee yang diinisialkan sebagai jml_karyawan dengan ketentuan d yaitu
pemisalan tabel department dan e untuk tabel employee dimana syarat/ kondisinya
yaitu workdept pada tabel employee = deptno yang ada pada tabel department dan
dengan kondisi tahun lahir (year(birthdate)) pada setiap pakerja < 1963 yang
jika dihitung dari tahun sekarang (2013) usia setiap pekerja yang ingin
ditampilkan yaitu usia karyawan yang memiliki usia lebih dari 50 tahun. COUNT
gunanya untuk menghitung jumlah baris dalam kolom empno, karena masing-masing
karyawan pasti memiliki empno yang unik dan berbeda satu sama lain, jadi dengan
empno kita bisa mengetahui ada berapa banyak jumlah karyawan dalam setiap department
tersebut. Data dikelompokkan dengan syntax GROUP BY berdasarkan deptname dari
tabel department.
KESIMPULAN
1) Fungsi-fungsi
agregat
COUNT :
Digunakan
untuk menghitung
jumlah
/ banyaknya nilai
disuatu kolom
dalam tabel.
AVG : Digunakan untuk menghitung rata-rata pada suatu kolom
SUM : Digunakan untuk menjumlahkan nilai dalam record
MIN : Mencari nilai terkecil pada suatu
kolom
MAX : Mencari nilai terbesar pada suatu
kolom
2) Fungsi
group by
Digunakan untuk mengelompokkan hasil query berdasarkan suatu criteria tertentu.
3) Klausa
having
HAVING adalah operator
khusus, yang digunakan untuk menyaring baris yang diinginkan dalam data yang
sudah dikelompokkan dengan GROUP BY.
Fungsinya hampir sama
seperti WHERE (sebagai pemberi kondisi), namun klausa WHERE tidak
boleh
digunakan
pada query yang sudah
dikelompokkan
dengan
menggunakan
klausa GROUP BY.
Klausa having digunakan
untuk menyaring data berdasarkan fungsi kelompok. Hal ini mirip dengan kondisi
WHERE tapi digunakan dengan fungsi kelompok. Fungsi kelompok tidak dapat
digunakan dalam WHERE Clause tetapi dapat digunakan dalam klausa HAVING.
No comments:
Post a Comment