latihan sql dasar
DESCRIPTION
Latihan dasar pemahaman SQL. Presentasi tentang latihan dasar untuk memahami SQL.(Bahasa Indonesia)TRANSCRIPT
Latihan SQL
Tabel
departement_id departement_name manager_id
10 Administration 101
20 IT 103
Tabel employees
Tabel departements
employee_id name salary manager_id departement_id
100 Steven 8000 101 10
101 Lexa 10000 101 10
102 Bruce 9000 103 20
103 Diana 11000 103 20
104 Bruce 8500 103 20
Soal Latihan 1. Tampilkan nama employee yang memiliki salary lebih dari
9000
2. Tampilkan id dan nama dari employee yang memiliki nama diakhiri dengan huruf n.
3. Tampilkan nama employee yang menjadi manager di departemen IT
4. Hitung jumlah employee yang memiliki nama Bruce
5. Tampilkan id departemen dan nama departemen dari employee yang bernama Lexa
6. Tampilkan nama-nama employee yang bekerja di departemen pada masing-masing departemen
8. Tampilkan id departemen yang total salary semua employee yang bekerja pada departement tersebut lebih dari 20000
7. Tampilkan employee id, last name, departemen id, dan rata-rata gaji semua employee pada masing-masing departemen(pakai operator JOIN)
Soal Latihan
9.Tampilkan id departemen, nama departemen, dan jumlah employee yang bekerja pada masing-masing departemen tersebut
Tampilkan departemen id, departemen name, jumlah employee yang bekerja di masing-masing departemen yang:
10. Jumlah pekerjanya kurang dari 3
11. Memiliki jumlah pekerja paling tinggi
12. Memiliki jumlah pekerja paling kecil
13.Tampilkan id departemen dan salary minimum dari departemen yang memiliki rata-rata salary paling besar
Pembahasan
1. SELECT e.nama
FROM employees e
WHERE e.salary > 9000
2. SELECT e.employee_id,e.name
FROM employees e
WHERE name LIKE ’%n’
3. SELECT e.name
FROM employees e, departements d
WHERE e.depertement_id=d.departement.id
AND e.employee_id=e.manager_id
AND d.departement_name=‘IT’
Pembahasan
4. SELECT count(*)
FROM employees e
WHERE name=‘Bruce’
5. SELECT
d.departement_id,d.departement_name
FROM departements d, employees e
WHERE d.departement_id=e.departement_id
AND e.name=‘Lexa’
6. SELECT e.name,d.departement_name
FROM employee e, departements s
GROUP BY e.name,d.departement_name
Pembahasan
7. SELECT d.departement_id
FROM departement d, employees e
WHERE d.departement_id=e.departement_id
GROUP BY d.departement_id
HAVING SUM(salary)>20000
8. SELECT
e.employee_id,e.name,e.departement_id,
AVG(salary)
FROM employees e JOIN employees s
WHERE e.departement_id=s.departement_id
GROUP BY
e.employee_id,e.name,e.departement_id
Pembahasan
9. SELECT d.departement_id,d.departement_name,
COUNT(*)
FROM departements d, employees e
WHERE d.departement_id=e.departement_id
GROUP BY d.departement_id,d.departement_name
10. SELECT d.departement_id,d.departement_name,
COUNT(*)
FROM departements d JOIN employees e
WHERE d.departement_id=e.departement_id
GROUP BY d.departement_id,d.departement_name
HAVING COUNT(*)< 3
Pembahasan
11. SELECT d.departement_id,d.departement_name, COUNT(*)
FROM departements d JOIN employees e
WHERE d.departement_id=e.departement_id
GROUP BY d.departement_id,d.departement_name
HAVING COUNT(*)=(SELECT MAX(COUNT(*))
FROM employees
GROUP BY departement_id)
12. SELECT d.departement_id,d.departement_name, COUNT(*)
FROM departements d JOIN employees e
WHERE d.departement_id=e.departement_id
GROUP BY d.departement_id,d.departement_name
HAVING COUNT(*)=(SELECT MIN(COUNT(*))
FROM employees
GROUP BY departement_id)
Pembahasan
13. SELECT departement_id, MIN(salary)
FROM employees
GROUP BY departement_id
HAVING AVG(salary) = (SELECT MAX(AVG(salary))
FROM employees
GROUP BY departement_id)