Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil...

26
B a s i s D a t a - 1 SQL 13 C H A P T E R SQL Function & Agregat

Transcript of Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil...

Page 1: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

13C H A P T E R

SQLFunction & Agregat

Page 2: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

Tujuan:

Mengenal perintah SQL dalam:- Operasi Himpunan- Fungsi Agregat

Objectives

Page 3: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

• Pada ekspresi SQL, terdapat operasi yang berhubungan denganhimpunan pada atribut yang sama.

• Operasi SQL tersebut yaitu: UNION, INTERSECT dan EXCEPT, yang masing-masing memiliki hubungan erat dengan operasialjabar relasional ∪, ∩ dan −.Contoh:

• Terdapat 2 himpunan data, yaitu semua nasabah yang memilikirekening pada suatu bank, dengan SQL:

SELECT nama_nasabahFROM penabung

• Dan himpunan semua pelanggan yang memiliki pinjaman dari suatubank, dengan SQL:

SELECT nama_nasabahFROM peminjam

Page 4: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi UNION (Penggabungan)• Untuk menemukan semua nasabah yang memiliki pinjaman,

rekening atau keduanya pada suatu bank tertentu, dapat dituliskanquery berikut:

(SELECT nama_nasabahFROM penabung)UNION(SELECT nama_nasabahFROM peminjam)

• Operaso UNION tidak seperti pada klausa SELECT, secaraotomatis mengeliminasi duplikat record. Maka pada query diatas, jika seorang nasabah bernama ‘Mike’ yang memiliki beberaparekening atau pinjaman (atau keduanya), maka ‘Mike’ hanyamuncul sekali record data saja.

Page 5: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi UNION (Penggabungan)• Jika ingin mempertahankan adanya duplikasi, maka dapat

digunakan operasi UNION ALL sebagai penggani UNION.(SELECT nama_nasabahFROM penabung)UNION ALL(SELECT nama_nasabahFROM peminjam)

• Dengan demikian, semua rekening dan pinjaman atas nama Mike akan muncul. Jika Mike memiliki 3 rekening dan 2 pinjaman padabank, maka akan terdapat 5 record data atas nama Mike.

Page 6: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi INTERSECT (Irisan)• Untuk menemukan semua nasabah yang memiliki baik rekening

maupun pinjaman pada bank, maka dapat digunakan query berikut:(SELECT [Distinct] nama_nasabahFROM penabung)INTERSECT(SELECT [Distinct] nama_nasabahFROM peminjam)

• Seperti pada operasi UNION, operasi INTERSECT jugamengeliminasi adanya duplikat data.

Page 7: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi INTERSECT (Irisan)• Jika ingin ditampilkan semua data yang memenuhi, sehingga

mempertahankan adanya duplikat data pada record-recordnya, maka dapat digunakan operasi INTERSECT ALL query berikut:

(SELECT [Distinct] nama_nasabahFROM penabung)INTERSECT ALL(SELECT [Distinct] nama_nasabahFROM peminjam)

• Jadi, jika Mike memiliki 3 rekening dan 2 pinjaman, maka data yang muncul ada 2 record.

Page 8: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi EXCEPT (Perkecualian)• Untuk menemukan semua nasabah yang memiliki rekening tapi

tidak memiliki pinjaman pada suatu bank, maka bentuk query:(SELECT [Distinct] nama_nasabahFROM penabung)EXCEPT(SELECT [Distinct] nama_nasabahFROM peminjam)

• Seperti pada operasi UNION dan INTERSECT sebelumnya, operasi EXCEPT juga mengeliminasi adanya duplikat data.

• Pada query diatas, nasabah dengan nama Mike akan muncul sekalijika Mike hanya memiliki rekening di bank saja dan tidak memilikipinjaman.

Page 9: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Operasi Himpunan

Operasi EXCEPT (Perkecualian)• Jika ingin mempertahankan adanya duplikasi data, maka dapat

digunakan operasi EXCEPT ALL dengan bentuk query:(SELECT [Distinct] nama_nasabahFROM penabung)EXCEPT ALL(SELECT [Distinct] nama_nasabahFROM peminjam)

• Dengan query diatas, jika Mike memiliki 3 rekening dan 1 pinjaman, maka akan dihasilkan 2 record data saja.

• Sebaliknya, jika Mike memiliki r rekening dan 3 pinjaman, makatidak akan dihasilkan data record (kosong).

Page 10: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan(collection) suatu himpunan data atau beberapa himpunan data danmengembalikan suatu nilai tunggal.

• Terdapat 5 fungsi agregasi (agregat) baku, yaitu:1. AVG 2. COUNT 3. MAX4. MIN 5. SUM

• Contoh:The maximum salary in

the EMPLOYEEStable.

Page 11: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

• Syntax dari Group Function, yaitu:

SELECT [column,] group_function(column), ...FROM table[WHERE condition][GROUP BY column][ORDER BY column];

Page 12: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Fungsi AVG dan SUM• Fungsi AVG digunakan untuk mencari nilai rata-rata pada suatu

kolom data.• Fungsi SUM digunakan untuk mencari nilai jumlah total pada suatu

kolom

SELECT AVG(salary), MAX(salary),MIN(salary), SUM(salary)

FROM employeesWHERE job_id LIKE '%REP%';

Page 13: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Fungsi MIN dan MAX• Fungsi MIN digunakan untuk mencari nilai data paling kecil

(minimum).• Fungsi MAX digunakan untuk mencari nilai data paling besar

(Maximum).

SELECT MIN(hire_date), MAX(hire_date)FROM employees;

Page 14: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Fungsi COUNT• Fungsi COUNT digunakan untuk mencari jumlah record data row

(jumlah baris data yang dihasilkan dari query/banyaknya data).

SELECT COUNT(*)FROM employeesWHERE department_id = 50;

Page 15: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Fungsi COUNT• Fungsi COUNT mengabaikan adanya data yang sifatnya NULL

VALUE.• Contoh berikut menampilkan jumlah data record pada suatu kolom.

SELECT COUNT(commission_pct)FROM employeesWHERE department_id = 80;

Page 16: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group Data• Ada keadaan penggunaan fungsi agregat untuk menghasilkan

beberapa record data sekaligus berdasarkan kondisi khusus ataugroup dari suatu kolom tertentu.

• Maka dapat digunakan klausa GROUP BY.

SELECT column, group_function(column)FROM table[WHERE condition][GROUP BY group_by_expression][ORDER BY column];

• Membagi rows (baris-baris) dalam tabel menjadi group-group data yang lebih kecil dengan klausa GROUP BY.

Page 17: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group Data

EMPLOYEES

The averagesalary

in EMPLOYEES

table for each

department.

4400

9500

3500

6400

10033

Page 18: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group Data

SELECT department_id, AVG(salary)FROM employeesGROUP BY department_id ;

Page 19: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group Data

SELECT AVG(salary)FROM employeesGROUP BY department_id ;

Page 20: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group DataGrouping by More Than One Column

EMPLOYEES

“Add up the salaries in

the EMPLOYEEStable

for each job, grouped by department.

Page 21: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Group DataUsing the GROUP BY Clause on Multiple Columns

SELECT department_id dept_id, job_id, SUM(salary)FROM employeesGROUP BY department_id, job_id ;

Page 22: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Pembatasan Group Data• Fungsi GROUP BY dapat dibuat pembatasan dari data yang akan

dihasilkan dengan menggunakan fungsi HAVING.

Dengan klausa HAVING dapat membatasi groups data:1. Rows (baris-baris) akan di group.2. Fungsi group dapat diaplikasikan.3. Groups matching the HAVING clause are displayed.

SELECT column, group_functionFROM table[WHERE condition][GROUP BY group_by_expression][HAVING group_condition][ORDER BY column];

Page 23: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Pembatasan Group Data

The maximumsalary

per departmentwhen it is

greater than$10,000

EMPLOYEES

Page 24: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Pembatasan Group Data

SELECT department_id, MAX(salary)FROM employeesGROUP BY department_idHAVING MAX(salary)>10000 ;

Page 25: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Pembatasan Group Data

SELECT job_id, SUM(salary) PAYROLLFROM employeesWHERE job_id NOT LIKE '%REP%'GROUP BY job_idHAVING SUM(salary) > 13000ORDER BY SUM(salary);

Page 26: Minggu-13 DB1 (SQL-Function & Agregat) file• Fungsi agregat adalah fungsi-fungsi yang mengambil kumpulan (collection) suatu himpunandata ataubeberapa himpunandata dan mengembalikan

Copyright © 2005 PENS-ITS

B a s i s D a t a - 1SQL

S Q L – Fungsi Agregat dan Group Function

Membuat Pembatasan Group Data

Nesting Group Functions

Display the maximum average salary. SELECT MAX(AVG(salary))FROM employeesGROUP BY department_id;