1. Group by and Aggregate Functions
a. GROUP BY
Statement GROUP BY digunakan bersama dengan fungsi agregat ke grup hasil-set oleh satu atau beberapa kolom.
Statement GROUP BY digunakan bersama dengan fungsi agregat ke grup hasil-set oleh satu atau beberapa kolom.
Bentuk umum GROUP BY:
SELECT nama_kolom, aggregate_function (nama_kolom)
DARI nama_tabel
WHERE nama_kolom operator nilai
GROUP BY nama_kolom
Contoh GROUP BY SQL
Contoh 1
Tabel Pesanan
No
|
Tanngal pesanan
|
Harga Pesanan
|
Pelanggan
|
1
|
2011/11/12
|
1000
|
Hanizar
|
2
|
2011/10/23
|
1600
|
Nilam
|
3
|
2011/09/02
|
700
|
Hanizar
|
4
|
2011/09/03
|
300
|
Hanizar
|
5
|
2011/08/30
|
2000
|
Jeni
|
6
|
2011/10/04
|
100
|
Nilam
|
Jika kita ingin mencari jumlah total pesanan dari setiap pelanggan.
Maka, kita harus menggunakan pernyataan GROUP BY untuk kelompok pelanggan.
Maka, kita harus menggunakan pernyataan GROUP BY untuk kelompok pelanggan.
Bentuk umumnya adalah :
SELECT Pelanggan, SUM (Harga pesanan) FROM Pesanan
GROUP BY Pelanggan
Maka, hasilnya adalah sebagai berikut :
Pelanggan
|
SUM(HargaPesanan)
|
Hanizar
|
2000
|
Nilam
|
1700
|
Jeni
|
2000
|
Digunakan untuk mengkalkulasikan data pada tabel-tabel didalam database.
b. Aggregate Functions
Digunakan untuk mengkalkulasikan nilai-nilai
didalam kolom. Fungsi Aggregate terdiri dari fungsi:
- AVG() – menghitung rata-rata
- COUNT() – menghitung jumlah row
- FIRST() – nilai pertama
- LAST() – nilai terakhir
- MAX() – nilai maksimal
- MIN() – nilai minimal
- SUM() – menjumlahkan
- WHERE harga_order>(SELECT AVG(Harga_Order) FROM Orde
WHERE Kustomer=’Ayu’
Syntax SQL COUNT(*)
Syntax SQL
COUNT(DISTINCT column_name)
Syntax SQL FIRST
Syntax SQL LAST
Syntax SQL MAX
Syntax SQL MIN
Syntax SQL SUM
2. AVG
Syntax AVG ( )
SELECT AVG(column_name) FROM table_name
Contoh:
SELECT AVG(harga_order) FROM Order
untuk menampilkan kostumer yang
mempunyai nilai diatas rata-rata
SELECT kustomer FROM Order
3. COUNT
SELECT COUNT(column_name) FROM table_name
contoh:
SELECT COUNT(kustomer) AS kustomerAyu FROM
Order
SELECT COUNT(*) FROM table_name
contoh:
SELECT COUNT(*) AS BanyaknyaOrder FROM Order
SELECT COUNT(DISTINCT column_name) FROM
table_name
contoh:
SELECT COUNT(DISTINCT kustomer) AS
banyaknya_Kustomer FROM Order
4. FIRST
SELECT FIRST(column_name) FROM table_name
Contoh:
SELECT FIRST(harga_order) AS
HargaOrderPertama FROM Order
5. LAST
SELECT LAST(column_name) FROM table_name
Contoh:
SELECT LAST (harga_order) AS
HargaOrderTerakhir FROM Order
6. MAX
SELECT MAX(column_name) FROM table_name
contoh:
SELECT MAX(Harga_Order) AS HargaMaximal FROM
Order
7. MIN
SELECT MIN(column_name) FROM table_name
contoh:
SELECT MIN(Harga_Order) AS HargaMinimum FROM
Order
8. SUM
SELECT SUM(column_name) FROM table_name
Contoh:
SELECT SUM(Harga_Order) AS TotalOrder FROM
Orders
2. ORDER BY
digunakan dalam sebuah pernyataan SELECT untuk mengurutkan hasil baik dalam menaik atau menurun. Oracle macam hasil query dalam urutan secara default.
Sintaks untuk menggunakan SQL ORDER BY klausa untuk mengurutkan data adalah:
SELECT column-list
FROM table_name [WHERE condition]
[ORDER BY column1 [, column2, .. columnN] [DESC]];
WHERE column_name operator value
1. Having
Digunakan untuk memfilter data dengan fungsi tertentu.
Syntax dasar :
SELECT column_name,aggregate_function(column_name)
FROM table_name
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
Contoh :
SELECT nama_customer,SUM(harga) FROM order
WHERE nama_customer=’Arini’ OR nama_customer=’Maheswari’
GROUP BY nama_customer
HAVING SUM (harga)>25000
LATIHAN
LATIHAN
1. Tampilkan jumlah
nilai minimum per matakuliah
Jawab :
SELECT matakuliah.nama_MK, Min (Nilai) AS Jumlah
FROM Nilai,matakuliah where
matakuliah.kode_MK=nilai.kode_MK GROUP BY (Nama_MK);
2. Tampilkan nilai
maksimum dari semua data pada
tabel NILAI
jawab :
Select MAX(nilai) AS jumlah
from nilai;
3. Tampilkan nim
dan kode mata kuliah yang
mempunyai nilai 90 ?
jawab :
SELECT nilai.nim,
matakuliah.Kode_MK
FROM mahasiswa,
matakuliah, nilai
WHERE
mahasiswa.nim=nilai.nim AND matakuliah.Kode_MK=nilai.Kode_MK AND nilai=90;
4. Tampilkan nim
dan kode mata kuliah yang
mempunyai nilai kurang dari 90 ?
jawab :
SELECT nilai.nim, matakuliah.Kode_MK
FROM mahasiswa, matakuliah, nilai
WHERE mahasiswa.nim=nilai.nim AND matakuliah.Kode_MK=nilai.Kode_MK AND
nilai<90;
5. Tampilkan
data mahasiswa yang dari kota berakhiran "KARTA" ?
jawab :
select *FROM mahasiswa
WHERE kota LIKE '%karta'
refrensi:
1. http://honeyzharratih.blogspot.com/
2. http://virtualyuni.wordpress.com/
3. http://beginner-sql-tutorial.com/
2. http://virtualyuni.wordpress.com/
3. http://beginner-sql-tutorial.com/
Tidak ada komentar:
Posting Komentar