Senin, 13 Oktober 2014

Pengelompokan Pengelompokan & Pengurutan Pengurutan Data

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.

Bentuk umum GROUP BY:
SELECT nama_kolomaggregate_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.

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:
  1. AVG() – menghitung rata-rata
  2. COUNT() – menghitung jumlah row
  3. FIRST() – nilai pertama
  4. LAST() – nilai terakhir
  5. MAX() – nilai maksimal
  6. MIN() – nilai minimal
  7. SUM() – menjumlahkan
  8. WHERE harga_order>(SELECT AVG(Harga_Order) FROM Orde

1. Syntax Count
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
 Kriteria Data
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

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/