Senin, 26 Desember 2011

Pengelompokan Data dan Agregasi Fungsi

Agregasi dalam SQL merupakan proses untuk mendapatkan nilai dari sekumpulan data yang telah dikelompokkan. Pengelompokan data didasarkan pada kolom atau kombinasi kolom yang dipilih.

Beberapa fungsi untuk agregasi adalah:

· MAX : Mencari data terbesar dari sekelompok data

· MIN : Mencari data terkecil dari sekelompok data

· COUNT : Mencari cacah data

· SUM : Mencari jumlah dari sekumpulan data numeris

· AVG : Mencari nilai rata-rata dari sekumpulan data numeris

Sintaks SQL untuk melakukan pengelompokan adalah

SELECT field-1, …, field-n, fungsi_untuk_agregasi(nama_field)

FROM table

GROUP BY field-1, …, field-n

Untuk memperjelas mekanisme pengelompokan, kita gunakan contoh tabel P berikut,

nim kodemk thnakademik nilai bobot

50 A1 1999/2000 B 3

50 A1 2000/2001 B 3

60 A1 2000/2001 A 3

50 A1 2001/2002 B 3

50 A2 2001/2002 B 2

60 A2 2002/2003 B 2

50 A2 2003/2004 A 2

50 A1 2004/2005 A 3

Penggunaan fungsi agregasi tanpa pengelompokan berarti melakukan agregasi dari seluruh data.

SELECT max(thnakademik) as thnambilterakhir

FROM P

Maka akan mengambil tahunakademik terbesar yaitu '2004/2005'

Penggunaan fungsi agregasi dengan pengelompokan berdasar pada kolom berarti melakukan pengelompokan dengan aturan dasar record-record yang memiliki nilai sama untuk kolom tersebut sebagai satu kelompok, dan bila nilai kolom pengelompokan tidak sama maka berada kelompok yang berbeda. Selanjutnya agregasi akan dilakukan untuk masing-masing kelompok data.

Agregasi berdasar kolom

SELECT nim as NIM, kodemk as KodeMK, max(thnakademik) as thnambilterakhir, nilai as Nilai

FROM P

GROUP BY nim

Maka akan membentuk kelompok seperti gambar di bawah ini:

NIM KodeMK thnambilterakhir nilai

50 A1 2004/2005 A

50 A2 2003/2004 A

60 A1 2000/2001 A

60 A2 2002/2003 B

SELECT nim as NIM, kodemk as KodeMK, min(thnakademik) as thnambilpertama, nilai as Nilai

FROM P

GROUP BY nim

Maka akan membentuk kelompok seperti gambar di bawah ini:

NIM KodeMK thnambilpertama nilai

50 A1 1999/2000 B

50 A2 2001/2002 B

60 A1 2000/2001 A

60 A2 2002/2003 B

Sintaks SQL untuk membentuk tabel P adalah

CREATE TABLE P ( nim varchar(3),

kodemk varchar(3),

thnakademik varchar(10),

nilai char(1),

constraint pk_P primary key(nim)

);

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '1999/2000', 'B');

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2000/2001', 'B');

insert into P(nim, kodemk, thnakademik, nilai) values ('60', 'A1', '2000/2001', ‘A');

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2001/2002', 'B');

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A2', '2001/2002', 'B');

insert into P(nim, kodemk, thnakademik, nilai) values ('60', 'A2', '2002/2003', 'B');

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A2', '2003/2004', 'A');

insert into P(nim, kodemk, thnakademik, nilai) values ('50', 'A1', '2004/2005', 'A');

Tidak ada komentar:

Posting Komentar