DML-QUERY Aggregate Function

5

Click here to load reader

Transcript of DML-QUERY Aggregate Function

Page 1: DML-QUERY Aggregate Function

SQL – QUERY

AGGREGATE FUNCTION

Tujuan Instruksional Umum:

1. Mahasiswa mengetahui dan menggunakan SQL sebagai bahasa yang dipergunakan

untuk mengakses DBMS

2. Mempergunakan fasilitas yang ada pada DBMS untuk menghasilkan informasi yang

diperlukan

a. Mencari informasi dari sebuah tabel dengan batasan tertentu

b. Mencari informasi dari hubungan antar tabel denngan batasan tertentu

DML merupakan bahasa yang digunakan untuk:

Mengolah basis data yaitu dengan memanipulasi tupel-tupel di basis data relasional

Melakukan query (sederhana, join, bertingkat)

Memanggil fungsi-fungsi agregasi

SQL menyediakan 4 statemen untuk memanipulasi data:

SELECT, untuk query (meminta informasi) dari basis data

INSERT, untuk menyisipkan data baru ke tabel pada sebuah basis data

UPDATE, untuk memodifikasi data yang telah ada pada tabel pada sebuah basis

data

DELETE, untuk menghapus data dari tabel pada sebuah basis data

Select digunakan hanya untuk mengambil data dari basis data tanpa merubahnya,

sedangkan Insert, Update dan Delete digunakan untuk mengubah data di tabel.

Pada bagian ini yang akan dibahas adalah perintah yang berhubungan dengan operasi yang

berhubungan dengan pengambilan data dari basis data tanpa merubahnya yaitu operasi

Select yaitu sub bagian Aggregate Function. Sedangkan operasi yang

mengubah/manipulasi data di tabel yaitu Insert, Update dan Delete telah dibahas pada SQL-

DML-Manipulasi.

Page 2: DML-QUERY Aggregate Function

AGGREGATE FUNCTION

Aggregate Function (fungsi agregasi) merupakan fungsi-fungsi yang disediakan oleh SQL

untuk memudahkan pengguna melakukan query

Fungsi agregasi antara lain menghitung banyaknya record, total nilai suatu atribut, rata-rata

nilai atribut, nilai terbesar dan nilai terkecil suatu atribut.

Fungsi agregasi hanya dapat diterapkan di klausa SELECT dan klausa HAVING. Selain itu

tidak dibenarkan. Fungsi agregasi hanya diberlakukan pada tabel hasil query. Contohnya,

nilai jam kerja terbesar untuk pegawai pada proyek Produce belum tentu sama dengan nilai

jam kerja untuk semua pegawai.

Fungsi-fungsi Agregasi:

COUNT, menghitung jumlah record (tuple) hasil query yang nilainya bukan NULL

SUM, menghitung nilai total suatu atribut numeric hasil query

MAX, mendapatkan nilai terbesar suatu atribut hasil query

MIN, mendapatkan nilai terkecil suatu atribut hasil query

AVG, mendapatkan nilai rata-rata suatu atribut hasil query

Count (*) adalah kasus penggunaan COUNT secara khusus. Fungsi count(*) adalah untuk

menghitung semua baris ditabel tak peduli nilai NULL atau munculnya duplikasi. Jika kita

ingin menghilangkan duplikasi maka sebelum nama kolom fungsi digunakan klausa

DISTINCT.

Q14: Menghitung banyaknya record pegawai yang bekerja pada departemen

Administration.

Select Count (*)

From employee E, department D

Where E.dno = D.dnumber and D.dname = ‘Administration’;

Query ini untuk menghitung semua pegawai yang bekerja pada departemen

Administration yaitu 3 orang dengan ssn = 999887777, 987654321, dan

9987987987. Walaupun ada tuple yang kosong pada 3 orang ini, maka Count(*)

tetap akan menghitung 3 orang.

ATAU

Select Count (distinct E.fname)

From employee E, department D

Where E.dno = D.dnumber and D.dname = ‘Administration’;

Query ini untuk menghitung jumlah nama depan pegawai yang bekerja pada

departemen Administration yang ada nilainya saja dan menghilangkan duplikasi,

yaitu 3 orang dengan nama depan pegawai = Alicia, Jennifer, dan Ahmad.

Count (*)

3

Count (E.fname)

3

Page 3: DML-QUERY Aggregate Function

Q15: Menghitung total jumlah jam kerja beserta jem kerja tertinggi, terendah, dan rata-rata

jam kerja pegawai yang mengerjakan proyek ProductY

Select sum (W.hours), max (W.hours), min (W.hours), avg (W.hours)

From works_on W, Project P

Where W.pno = P.pnumber and P.pname = ‘ProductY’;

Sum(W.hours) max(W.hours) min(W.hours) avg(W.hours)

37.5 20 7.5 12.5

Page 4: DML-QUERY Aggregate Function

EMPLOYEE

FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO pk fk fk

DEPARTMENT

pk fk

DEPT_LOCATION

pk,fk pk

PROJECT

pk fk

WORKS_ON

pk,fk pk,fk

DEPENDENT

ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP pk, fk pk

Gambar 1. Skema Basis Data COMPANY

DNAME DNUMBER MGRSSN MGRSTARTDATE

DNUMBER DLOCATION

PNAME PNUMBER PLOCATION DNUM

ESSN PNO HOURS

Page 5: DML-QUERY Aggregate Function

EMPLOYEE

FNAME MINIT LNAME SSN BDATE ADDRESS SEX SALARY SUPERSSN DNO

John B Smith 123456789 09-jan-55 731 Fondren, Houston, TX M 30000 333445555 5

Franklin T Wong 333445555 08-dec-45 638 Voss, Houston, TX M 40000 888665555 5

Alicia J Zelaya 999887777 19-jul-58 3321 Castle, Spring, TX F 25000 987654321 4

Jennifer S Wallace 987654321 20-jun-31 291 Berry, Bellaire, TX F 43000 888665555 4

Ramesh K Narayan 666884444 15-sep-52 975 Are Oak, Humble, TX M 38000 333445555 5

Joyce A English 453453453 31-jul-62 5631 Rice, Houston, TX F 25000 333445555 5

Ahmad V Jabber 987987987 29-mar-59 980 Dallas, Houston, TX M 25000 987654321 4

James E Borg 888665555 10-nov-27 450 Stone, Houston, TX M 55000 null 1

WORKS_ON DEPARTMENT

PROJECT

DEPENDENT DEPT_LOCATION

Gambar 2. Basis Data COMPANY

ESSN PNO HOURS

123456789 1 32.5

123456789 2 7.5

666884444 3 40.0

453453453 1 20.0

453453453 2 20.0

333445555 2 10.0

333445555 3 10.0

333445555 10 10.0

333445555 20 10.0

999887777 30 30.0

999887777 10 10.0

987987987 10 35.0

987987987 30 5.0

987654321 30 20.0

987654321 20 15.0

888665555 20 Null

DNAME DNUMBER MGRSSN MGRSTARTDATE

Research 5 333445555 22-may-78

Administration 4 987654321 01-jan-85

Headquarters 1 888665555 19-jan-71

PNAME PNUMBER PLOCATION DNUM

ProductX 1 Bellaire 5

ProductY 2 Sugarland 5

Produce 3 Houston 5

Computerization 10 Stafford 4

Reorganization 20 Houston 1

Newbenefits 30 Stafford 4

DNUMBER DLOCATION

1 Houston

4 Stafford

5 Bellaire

5 Sugarland

5 Houston

ESSN DEPENDENT_NAME SEX BDATE RELATIONSHIP

333445555 Alice F 05-apr-76 Daughter

333445555 Theodore M 25-oct-73 Son

333445555 Joy F 03-may-46 Spouse

987654321 Abner M 29-feb-32 Spouse

123456789 Michael M 01-jan-78 Son

123456789 Alice F 31-dec-78 Daughter

123456789 Elizabeth F 05-may-57 Spouse