You are on page 1of 3

3.

Dari Database Company lakukan query sebagai berikut:


a) Tampilkan dependent_name dan relationship dengan employee yang namanya diawali huruf R ?
SELECT dependent_name, relationship
FROM dependent
WHERE dependent_name LIKE ’R%’
OR relationship LIKE ’R%’;

b) Banyaknya employee yang mengerjakan project PNum = 1 ?


SELECT COUNT(pnum) AS jumlah_employee FROM works_on WHERE pnum=’1’ ;

c) Banyaknya employee yang memiliki salary lebih dari 3500000 ?


SELECT COUNT(ssn) AS jumlah_employee_salary FROM employee WHERE salary >’3500000’;

d) Banyaknya project yang dikerjakan DNum =2 ?


SELECT COUNT(pnumber) AS jumlah_project FROM project WHERE dnum=’2’;

e) Hitung total dan rata-rata salary dari setiap departemen ?


SELECT dnum, SUM(salary), AVG(salary)
FROM employee
GROUP BY dnum ORDER BY dnum ASC;

f) Banyaknya employee dari setiap department dan urutkan berdasarkan employee terbanyak ?
SELECT dnum, COUNT(dnum) AS jumlah_employee_department
FROM employee GROUP BY dnum ORDER BY jumlah_employee_department DESC;

g) Total hours perweek dari semua employee untuk setiap project ?


SELECT pnum, SUM(hours)
FROM works_on
GROUP BY pnum ORDER BY pnum ASC;

h) Employee yang memiliki total hours perweek lebih besar dari 140 hours dan urutkan berdasarkan jumlah jam
kerja terbanyak?
SELECT essn, SUM(hours)
FROM works_on
GROUP BY essn HAVING SUM(hours) > ’140’ ORDER BY SUM(hours) DESC;

i) Kelompokkan bonus employee berdasarkan jumlah jam kerjanya ? (Jika >= 200 hours, maka bonus = 50%; Jika
>= 150 hours, maka bonus = 25%, Selainnya bonus = 10%)
SELECT essn, SUM(hours),
CASE
WHEN SUM(hours) >= 200 THEN ’50%’
WHEN SUM(hours) >= 150 THEN ’25%’
ELSE ’10%’
END AS bonus
FROM works_on
GROUP BY essn
ORDER BY SUM(hours) DESC;

j) Banyaknya project yang dikerjakan tiap employee dan urutkan dari yang terbanyak ?
SELECT essn, COUNT(pnum) AS jumlah_project
FROM works_on
GROUP BY essn ORDER BY COUNT(pnum) DESC;

k) Employee yang bekerja pada 4 project ?


SELECT essn, COUNT(pnum) AS jumlah_project
FROM works_on
GROUP BY essn HAVING COUNT(pnum) = ’4’;

l) Employee yang memiliki rata-rata hours perweek = 70 jam dan bekerja pada 2 project ?
SELECT essn, COUNT(pnum) AS jumlah_project, AVG(hours)
FROM works_on
GROUP BY essn HAVING AVG(hours) = ’70’ AND COUNT(pnum) = ’2’;

m) Banyaknya Dependent berdasarkan dengan employee ?


SELECT relationship, COUNT(DISTINCT essn)
FROM dependent
GROUP BY relationship;

n) Berapa lama Manager tiap Department sudah menjabat ?


SELECT mgrssn, age(CURRENT_DATE, mgrstartdate) AS lama_menjabat
FROM department
ORDER BY mgrssn ASC;

o) Lokasi project yang menjadi tempat lebih dari satu department?


SELECT plocation, COUNT(DISTINCT dnum) AS jumlah_dept
FROM project
GROUP BY plocation HAVING COUNT(DISTINCT dnum) > ’1’;
a) SELECT dependent_name, relationship FROM dependent WHERE dependent_name LIKE ‘R%’;
b) SELECT COUNT(pnum) AS jumlah_employee FROM works_on WHERE pnum=’1’
c) SELECT COUNT(ssn) AS jumlah_employee_salary FROM employee WHERE salary > ‘3500000’;
d) SELECT COUNT(pnumber) AS jumlah_project WHERE dnum=’2’;
e) SELECT dnum, SUM(salary), AVG(salary) FROM employee
GROUP BY dnum ORDER BY dnum ASC;
f) SELECT dnum, COUNT(dnum) AS jumlah_employee_department FROM employee GROUP BY dnum ORDER
BY jumlah_employee_department DESC;
g) SELECT pnum, SUM(hours) FROM works_on GROUP BY pnum ORDER BY pnum ASC;
h) SELECT essn, SUM(hours) FROM works_on GROUP BY essn HAVING SUM(hours) > ‘140’ ORDER BY
SUM(hours) DESC;
i) SELECT essn, SUM(hours),
CASE
WHEN SUM(hours) >= 200 THEN ‘50%’
WHEN SUM(hours) >= 150 THEN ‘25%’
ELSE ‘10%’
END AS bonus
FROM works_on
GROUP BY essn
ORDER BY SUM(hours) DESC;
j) SELECT essn, COUNT(pnum) AS jumlah_project_yg_dikerjakan FROM works_on GROUP BY essn ORDER BY
COUNT(pnum) DESC;
k) SELECT essn, COUNT(pnum) AS jumlah_project_yg_dikerjakan FROM works_on GROUP BY essn HAVING
COUNT(pnum) = ‘4’;
l) SELECT essn, COUNT(pnum) AS jumlah_project, AVG(hours) FROM works_on GROUP BY essn HAVING
AVG(hours) = ‘70’ AND COUNT(pnum) = ‘2’
m) SELECT relationship, COUNT(essn) FROM department GROUP BY relationship
n) SELECT mgrssn, age(CURRENT_DATE, mgrstartdate) AS age FROM department ORDER BY mgrssn ASC;
o) SELECT plocation, COUNT(DISTINCT dnum) AS jumlah_dept FROM project GROUP BY plocation HAVING
COUNT(DISTINCT dnum) > ‘1

You might also like