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