Landasan
Teori
“Agregasi SQL dan View”
AGREGATE
OPERATOR
Fungsi aggregate
atau disebut fungsi
ringkasan digunakan untuk
melakukan penghitungan
menjadi sebuah nilai
dari beberapa nilai
input. Aggregate dapat digabungkan dengan
sebuah parameter seperti
WHERE untuk menghasilkan
suatu hasil yang lebih
kompleks lagi. Adapun
fungsi agregate yang
disediakan oleh PostgreSQL dapat
dilihat pada tabel berikut :
COUNT(*) : Menghitung jumlah baris
SUM(NAMA KOLOM) : Menghitung penjumlahan data
MAX(NAMA_KOLOM) : Mencari nilai terbesar
MIN(NAMA KOLOM) : Mencari nilai terkecil
AVG(NAMA KOLOM) : Mencari nilai rata-rata
Untuk pencarian banyaknya pegawai kita
bisa menggunakan query berikut :
select
count(*) from pegawai;
Untuk pencarian nilai terbesar
berdasarkan ID :
select
max(Id_peg) from pegawai;
Untuk pencarian nilai terkecil :
select
min(Id_peg) from pegawai;
Untuk pencarian rata-rata :
select
avg(Id_peg) from pegawai;
GROUP
BY
Group By merupakan fungsi
yang digunakan untuk
melakukan pengelompokan dari perintah
SELECT. Group by
seringkali diperlukan untuk menjalankan agregate
menjadi sebuah kelompok
dari hasil Query.
Berikut
struktur SQL untuk penampilan data :
select
nama_kolom from nama_tabel group by nama_kolom;
HAVING
Pemakaian HAVING
terkait dengan GROUP BY, kegunaanya
adalah untuk menentukan kondisi
bagi GROUP BY,
dimana kelompok yang
memenuhi kondisi saja yang akan
di hasilkan.
Contoh :
select
pelanggan, sum (hargaorder) from pesanan group by pelanggan having sum
(hargaorder) <2000;
CASE
Meskipun SQL bukan
merupakan sebuah prosedur bahasa perograman, namun dalam prosesnya dapat dengan
bebas mengontrol data yang kembali dari
query. Kata WHERE menggunakan perbandingan
untuk mengontrol pemilihan
data, sedangkan CASE perbandingan
dalam bentuk output kolom. Jadi intinya penggunaan CASE akan membentuk output tersendiri berupa
sebuah kolom baru dengan data dari operasi yang di dalamnya.Struktur didalam
select seperti berikut :
CASE WHEN condition THEN result
[WHEN ...]
[ELSE result] END
Berikut
contoh query penggunaan
case, penentuan umur
jika umurnya dibawah 1986-01-01
dianggap dewasa dan lebih dari itu dianggap remaja :
select
txt_namadepan, txt_namaakhir, dt_tgllahir,
case when dt_tgllahir < '1986-01-01' then 'dewasa' else 'balita' end as umur
from pegawai ;
VIEW
Views dapat juga
disebut tabel bayangan tetapi bukan
temporary table, bukan juga
merupakan sebuah tabel
yang asli. Suatu
view adalah suatu
relasi virtual yang tidak
perlu ada database
tetapi dapat diproduksi
atas permintaan oleh
pemakai tertentu, pada ketika
permintaan. Satu lagi
kelebihan yang dimiliki
oleh view yaitu dapat menyimpan perintah query, dan
dapat mewakili sebuah subset dari tabel asli dan memilih kolom atau row
tertentu dari tabel biasa.
create
view nama_tabel_view as query;
Catatan
: Query diatas
merupakan query untuk
menampilkan data menggunakan
query sql select.
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));
Sumber (Daf_Pus) :
·
Modul 5 Praktikum
DBD
Tidak ada komentar:
Posting Komentar