Kamis, 15 Desember 2011

Fungsi Agregat

Berikut ini adalah beberapa fungsi Agregat :

1. Sum(nama_field) = menjumlahkan isi baris-baris pada field tersebut.
2. count(nama_field) = untuk mengitung banyaknya baris pencacahan data.
3. avg(nama_field)= untuk menghitung rata-rata dari isi baris- baris data.
4. max(nama_field)= untuk menghitung nilai max dari baris-baris data.
5. min(nama_field)= untuk menghitung nilai min dari baris-baris data.

catatan : untuk sum dan avg, data yang mau dihitung haruslah numeric.
untuk count baris yang berisi NULL tidak ikut dihitung.
untuk menggunakan agregat funtion dengan syarat, gunakan HAVING!!!!
(Jangan pake where).

tambahan syntax :
1. order by:
untuk sorting data. defaultnya ascending.
2. group by:
untuk mengelompokkan data yang tidak menggunakan aggregate.
(harus!!! jika data yang kita ingin tampilkan banyak. karena jika tidak, akan eror)
3. having:
untuk membuat syarat bagi fungsi aggregate yang kita pakai. Kalau syntax biasa kita bisa menggunakan where.
4. compute by:
untuk membuat subtotal (seperti Excel).
format:
compute (fungsi_agreagat) by (nama_field)
catatan :
untuk compute by. untuk mengisi (by) dari compute by, kita tinggal menggunakan (by) dari order by.

berikut ini adalah urutan penggunaan fungsi2 di atas:

select kdcontoh,nama,(fungsi_agregat) from mscontoh
where
nama like '% %'
and
nama not like '% % %'group by nama, kdcontoh
having (fungsi_agregat)> 15
order by kdcontoh
compute count(nama) by kdcontoh

Materi minggu ini adalah:
* Sub Query(In, Exists)
* Select into

Sebenarnya In dan Exist digunakan untuk menggabungkan beberapa table.
ada 4 cara untuk menggabungkan table:
- dengan cara In
- Exists
- Join

yang perlu diperhatikan dalam penggabungan table (terutama penggunaan Exists)adalah harus menggabungkan Primary key dan Foreign key dari table-table yang diquery.(Biasakan lihat ERD dalam pengerjaan)

Sebenarnya In mirip dengan Exists, hanya berbeda dalam cara penggunaan dan in hanya dapat mereturn 1 kolom saja berbeda dengan Exists yang bisa mereturn banyak kolom.
(Lihat contoh di bawah.)


Contoh penggunaan In:
select kdanggota, nama from msanggota a
where kdanggota in
(
select kdanggota from trheaderpendaftaran
)

Contoh penggunaan Exists:
select * from MsKaryawan a
where exists
(
select * from TrPengirimanHeader b
where a.KdKaryawan = b.KdKaryawan
)

Select into:
SELECT “field_name”
INTO “new_table"
FROM source

digunakan untuk mengcopy table(bisa juga untuk mengcopy kolom)


N.B:
Perhatikan urutan penggunaan fungsi2 dalam aggregate!!!
jangan sampai terbalik!!!

Tidak ada komentar: