Anda di halaman 1dari 16

Modul 4 : Group

Functions
Universitas Atma Jaya Yogyakarta
Apa itu Group Functions?
Group Functions beroperasi pada sebuah
kumpulan / grup data untuk mengembalikan
satu hasil per kumpulan / grup tersebut.
Group Functions mengabaikan nilai null, jadi

nilai null harus disubstitusikan menggunakan


fungsi NVL atau NVL2.
Group Functions dapat dikombinasikan

dengan distinct untuk menghitung data yang


tidak duplikat.
Group Functions juga bisa nested, baik

dengan group functions lainnya maupun


dengan single row functions.
Group Functions v Single Row
Functions
Single Row Functions bekerja per 1 baris data
dan mengembalikan hasilnya, tidak seperti
Group Functions.
Contoh :
Terdapat kumpulan data :

17.56, 20.67, 15.65 dikenakan fungsi


minimum dan round. Fungsi minimum akan
mengembalikan hanya 1 hasil, yaitu 15.65.
Namun, fungsi round akan mengembalikan 3
hasil yaitu 18, 21, dan 16.
Group Functions
Ada 7 tipe group functions :
AVG
COUNT
MAX
MIN
SUM
STDDEV
VARIANCE
Syntax Group Functions
SELECT [namakolom, ],
group_functions(namakolom)
FROM namatabel
WHERE kondisi
GROUP BY namakolom
HAVING kondisigrup
ORDER BY namakolom;
AVG
AVG atau singkatan dari Average, digunakan
untuk mencari nilai rerata dari sebuah grup
data (kolom)
Contoh : Mencari rerata gaji pegawai

SELECT AVG(salary) FROM EMPLOYEES;


MIN
MIN atau singkatan dari Minimum, digunakan
untuk mencari sebuah nilai terkecil dari
sebuah grup data (kolom)
Contoh : Mencari gaji terendah pegawai

SELECT MIN(salary) FROM EMPLOYEES;


MAX
MAX atau singkatan dari Maximum,
digunakan untuk mencari sebuah nilai
terbesardari sebuah grup data (kolom)
Contoh : Mencari gaji tertinggi pegawai

SELECT MAX(salary) FROM EMPLOYEES;


COUNT
COUNT, digunakan untuk menghitung cacah
atau banyaknya data dari sebuah grup data
(kolom)
Contoh : Mencari jumlah pegawai

SELECT COUNT (employee_id) FROM


EMPLOYEES;
Untuk menghitung data yang tidak duplikat

gunakan juga distinct


SELECT COUNT (distinct job_id) FROM
EMPLOYEES;
Group By Clause
Group By digunakan untuk memecah satu
grup data besar (tabel) menjadi grup grup
data yang lebih kecil
Contoh : group by department_id

Name Salary Department


King 24000 90
Patrick 18000 90
Bob 15000 50
Ronaldo 17000 60
Roni 16000 60
Penggunaan Group By
SELECT department_id, SUM(salary)
FROM employees
GROUP BY department_id;
Department SUM(salary)
90 42000
50 15000
60 33000

Gunakan group by untuk kolom yang tidak


dikenakan operasi group functions.
Having Clause
Having digunakan untuk membatasi hasil dari
sebuah grup data. Bedakan dengan where
yang membatasi hanya barisan data.
Syarat menggunakan having adalah barisan

data sudah digrupkan, dan terdapat group


functions.
Penggunaan Having
SELECT department_id, SUM(salary)
FROM employees
GROUP BY department_id
HAVING SUM(salary)>30000;
Department SUM(salary)
90 42000
60 33000
HAVING v WHERE
Menampilkan manager_id dan gaji terkecil
yang diperoleh oleh pegawai yang bekerja
untuk manager tersebut. Tampilkan data
yang memiliki manager dan yang gaji
terkecilnya di atas 6000.
SELECT manager_id, MIN(salary)
FROM employees
WHERE manager_id is not null
GROUP BY manager_id
HAVING MIN(salary)>6000
Nesting Group Functions
Group Functions juga dapat bertumpuk, dengan
cara kerja yaitu mengerjakan fungsi yang
terdalam dulu, baru menjalankan fungsi di
luarnya.
Contoh
Mencari department yang memiliki nilai tertinggi
dari rerata gaji pegawai. (Cari rerata gaji terlebih
dahulu, kemudian cari nilai tertingginya)
SELECT department_id, MAX(AVG(salary))
FROM employees
GROUP BY department_id;
Guided
Nomor : 4, 5, 9, 11