Subscribe:

Minggu, 09 Juni 2013

PENGGUNAAN GROUP FUNCTIONS

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

  1. 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.

      4. Berapa jumlah manager tanpa daftar item. Beri label dengan Number of Manager.

 5. Temukan perbedaan antara salary yang terbesar dan terkecil. Beri kolom menjadi DIFFERENCE

 6. Tulis report uantuk menampilkan jumlah manager dan salary. Salary yang terkecil untuk manager

7. Tulis query untuk menampilkan jumlah employees dan total dari employees yang masuk pada 1995, 1996, 1997, 1998.



0 komentar:

Posting Komentar