A) DASAR
TEORI
Apa
itu Aggregated Data dan apa hubungannya dengan Group Function??
Aggregated
Data adalah suatu fungsi yang digunakan untuk menghasilkan satu nilai dari
beberapa atau sejumlah baris dan dipengaruhi atau ditentukan oleh Group
Function(fungsi yang digunakan untuk mengelompokkan data). Jadi intinya,
beberapa data dari beberapa baris kita ambil, lalu kita kelompokkan dan akan
menghasilkan satu nilai.
Beberapa
Tipe-tipe dari Group Function:
1.
MAX (untuk mencari
nilai terbesar dalam Group Function)
2.
MIN (untuk mencari
nilai terkecil dalam Group Function)
3.
AVG (untuk mencari
nilai rata-rata dalam Group Function)
4.
COUNT (untuk menjumlahkan baris dalam Group
Function)
5.
SUM (untuk mencari nilai total dalam Group
Function)
Contoh
struktur syntax :
select
column, group_function
from
table
where
condition]
Group
By group_by_expression]
Having
group_condition]
Order
By column];
nb:
Schema yang digunakan yaitu Schema HR yang terdapat pada oracle
select
avg(salary), max(salary),
min(salary), sum(salary)
from
employees
where
job_id like ‘%REP%’
select
count(*)
from
employees
where
department_id = 40
select
count(employee_id)
from
employees
where
department_id = 40
Penjelasan
:
Menampilkan
rata-rata salary, nilai terbesari salary, nilai terkecil salary, total salary
dari tabel employees dimana job id nya mengandung kata REP
Menampilkan
berapa banyak jumlah baris dari tabel employees yang mempunyai department_id =
40
Menampilkan
berapa banyak jumlah employee id (dihitung berdasarkan baris)dari tabel
employees dimana department id nya = 40
MENGGUNAKAN GROUP BY CLAUSE
Perhatikan
contoh berikut :
select
department_id, avg(salary)
from
employees
group
by department_id ;
Pada
contoh diatas kita menambahkan suatu fungsi yaitu fungsi Group By yang
digunakan untuk mengelompokkan rata-rata salary berdasarkan department_id. jadi
begini kira-kira terjemahan contoh diatas :
Tampilkan
department id beserta dengan rata-rata salary dari tabel employees dimana
rata-rata salarynya dikelompokkan berdasar department_id. jadi intinya , kita
mencari nilai rata-rata salary dari tiap department
MENGGUNAKAN GROUP BY CLAUSE DENGAN MULTIPLE COLUMNS
(BANYAK KOLOM/LEBIH DARI SATU KOLOM)
Perhatikan
contoh berikut :
select
department_id as dept_id, job_id, AVG(salary)
from
employees
group
by department_id, job_id
pada
contoh diatas, kita akan menampilkan dept_id , job_id beserta dengan rata-rata
salary dimana rata-rata salarynya didapatkan dengan mengelompokkan
department_id terlebih dahulu lalu setelah itu dikelompokkan berdasarkan
job_id. Intinya, kita ingin mencari rata-rata salary dari tiap job_id dimana
job_id tersebut terdapat dalam department_id yang sama .
MENGGUNAKAN HAVING CLAUSE
Perhatikan
contoh berikut :
select
department_id, max(salary)
from
employees
group
by department_id
having
max(salary)>10000
Contoh
diatas akan menampilan salary terbesar pada tiap department_id dimana rata-rata
salary nya lebih besar dari 110000.
Perlu
diperhatikan bahwa MAX(salary)>10000 harus diletakkan pada fungsi HAVING dan
tidak bisa diletakkan pada fungsi WHERE karena MAX(salary) merupakan suatu
Group Function
B) PERSOALAN
:
Kerjakan soal pada modul
C) PENYELESAIAN
- Temukan
terbesar, terkecil, jumlah dan rata-rata salary dari semua employees. Beri
table kolom maksimum, minimum, sum, dan average. Bulatkan keatas hasil
yang anda dapatkan.
2. Modifikasi nomor 1 dan tampilkan berdasarkan group by
type.
3. Tulis query untuk menampilkan jumlah orang yang memiliki
job yang sama.
7. Tulis query untuk menampilkan jumlah employees dan total dari employees yang masuk pada 1995, 1996, 1997, 1998.
0 komentar:
Posting Komentar