TUTORIAL. Mencari nilai Max dan Min

dokumen-dokumen yang mirip
PERTEMUAN 5 PENGGUNAAN FUNGSI GROUP

Oracle Academic Initiative

PERTEMUAN 4 MENAMPILKAN DATA DARI BANYAK TABEL

PRAKTIKUM 8 SINGLE ROW & GROUP FUNCTION

MODUL 8. Sub Query Pada baris dan Kolom PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL 7. Advanced Query : Menampilkan Data Dari Banyak Tabel PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PERTEMUAN 6 SUBQUERY

Melaporkan Data Agreget Menggunakan Group Functions

Pemrograman Basis Data dan SQL Modul ke: Pemrograman PL/SQL

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Oracle Academic Initiative

Untuk menampilkan data-data yang telah tersimpan dalam database diperlukan perintah SELECT, yang dapat dirumuskan sebagai berikut:

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS

PERTEMUAN 8 PENGATURAN OUTPUT PADA SQL*PLUS

Praktikum Basis Data 13 Structure Query Language 1

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA

B a s i s D a t a - 1 C H A P T E R. SQL Lanjutan 1. Copyright 2005 PENS-ITS

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Modul Praktikum II Matakuliah Basis Data 2

Oracle Academic Initiative

S Q L. Sejarah SQL. Penulisan Perintah SQL. SQL (Structure Query Language)

RENCANA PEMBELAJARAN

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

MODUL 8 PENGENALAN MySQL FRONT DAN AGREGGATE FUNCTION

Syntax Syntax SQL. Untuk lebih jelasnya dapat dilihat sebagai berikut : 1. DDL (Definition Data Language) a. CREATE

Structured Query Language

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

MODUL 3 PENGELOMPOKAN, PENGURUTAN, KRITERIA DATA, AGREGASI

PERTEMUAN 10 PEMBUATAN TABEL

3 rd DML : Selection(3)

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

1. Mahasiswa mampu mengenal dan memahami Bahasa Pemrograman MySQL 2. Mahasiswa mampu mengimplementasikan DDL dan DML.

PRAKTIKUM 4 PENGAMBILAN DATA LANJUT

Single-row Function dan Group Function

Mahasiswa memahami fungsi-fungsi lain di dalam SQL Mahasiswa memahami tentang operasi agregasi Mahasiswa mampu mengaplikasikan operasi agregasi

B a s i s D a t a - 1 C H A P T E R SQL. Function & Agregat. Copyright 2005 PENS-ITS

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

PERTEMUAN 10. SQL : Data Manipulation (Chap. 6 Conoly)

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

Oracle Academic Initiative

IKG2I4 / Software Project I

MODUL IV FUNGSI AGREGAT

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

Pertemuan 10 Structure Query Language(SQL)

BAB VI AGREGASI SQL DAN VIEW

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

PENGERTIAN DATABASE MySQL

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Strctured Query Language BASIS DATA

Modul 3 : Query Penggabungan Tabel

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Kontrak Kuliah. Perintah Manipulasi Data Lanjutan. Edi Sugiarto, S.Kom, M.Kom

SQL LANJUT BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013

LAPORAN PRAKTIKUM BASIS DATA MODUL 3 CONDITIONAL SQL MIKA PURNAMASARI NASTADINA

STRUCTURE QUERY LANGUAGE

Basis Data I. Pertemuan Ke-11 (SQL Part 2) Noor Ifada.

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP) PROGRAM STUDI : DIII MANAJEMEN INFORMATIKA Semester : 4

Optimasi Query. Optimasi Perintah SQL Informasi Jalur Akses Query Faktor-faktor yang berpengaruh terhadap kecepatan akses data

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Oracle Academic Initiative

Universitas Komputer Indonesia. Pemrograman dengan C++ Builder

SQL Data Definition Language (DDL)

Database Systems: Lab. Actvity 3: Fungsi-Fungsi MySql Advance. Pendahuluan. Pendahuluan

STRUCTURE QUERY LANGUAGE (SQL)

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

Menggunakan Set Operators

Widhy Hayuhardhika NP, S.Kom

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

Basis Data. Bagian IV SQL (2) Fak. Teknik Jurusan Teknik Informatika Universitas Pasundan

BAB 2 : Dasar Penulisan Statemen SQL Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

Menggunakan Subquery untuk Memecahkan Query Query

Oracle Academic Initiative

Data Manipulation Language (DML)

DATA MANIPULATION LANGUAGE

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

PHP Accessing MySQL Database. Fajar Pradana S.ST., M.Eng

Strctured Query Language BASIS DATA

Macam - Macam Perintah Pada SQL


Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.

BAB I PENDAHULUAN. 1.1 Latar Belakang

Latihan : Sebutkan record berapa saja yang akan ditampilkan berdasarkan perintah berikut :

BAB III STRUCTURED QUERY LANGUAGE (SQL)

Pertemuan 11: Fungsi Agregat

Oracle Academic Initiative

LAPORAN PRAKTIKUM SISTEM BASIS DATA

MySQL J A M K E T I G A

Schema Objects. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Praktikum Basis Data 2017 TE UM

Oracle Academic Initiative

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Sistem Basis Data. Pertemuan 13 SQL INSERT & SELECT TUJUAN

Transkripsi:

TUTORIAL Mencari nilai Max dan Min Aggregasi data dengan Group Function (GROUP BY, ROLLUP dan CUBE) Group function merupakan fungsi yang akan akan memproses banyak data dan menghasilkan satu atau beberapa output sesuai dengan pengelompokan yang dilakukan. Untuk pengelompokan digunakan klausa GROUP BY. Berbeda dengan Single-row function yang akan memproses satu data dan menghasilkan satu output. Jenis group function : - AVG untuk mencari nilai rata-rata - COUNT untuk menghitung jumlah data/baris - MAX untuk mencari nilai paling besar - MIN untuk mencari nilai paling kecil - STDDEV untuk menghitung nilai standard deviasi (statistik) - SUM untuk menghitung nilai total - VARIANCE untuk menghitung nilai variance (statistik) Fungsi AVG, SUM, STDDEV dan VARIANCE hanya berlaku untuk data bertipe numerik, tidak bisa untuk karakter atau date. Syntax lengkap untuk perintah SQL dengan GROUP BY : SELECT group_function(kolom),... FROM tabel [WHERE kondisi] [GROUP BY group_function(kolom) kolom_alias] [HAVING kondisi] [ORDER BY kolom kolom_alias] Untuk mempraktekkan group function, gunakan tabel EMP yang ada di schema SCOTT, untuk itu tentunya kita harus login dulu sebagai user SCOTT sbb:

SQL> connect scott Password : ***** Connected Periksa data di tabel EMP SQL> set pagesize 50 SQL> SELECT deptno, ename, sal 2 FROM emp 3 ORDER BY deptno; DEPTNO ENAME SAL ---------- ---------- ---------- 10 CLARK 2450 10 KING 5000 10 MILLER 1300 20 JONES 2975 20 FORD 3000 20 ADAMS 1100 20 SMITH 800 20 SCOTT 3000 30 WARD 1250 30 TURNER 1500 30 ALLEN 1600 30 JAMES 950 30 BLAKE 2850 30 MARTIN 1250 14 rows selected. Kita diminta untuk menampilkan nilai salary yang paling tinggi, untuk itu gunakan function MAX sperti ini: SQL> SELECT max(sal) 2 FROM emp;

MAX(SAL) ---------- 5000 Function MAX akan memperoses semua baris data yang ada (14 row) untuk menghasilkan satu nilai maksimum (5000). Nilai 5000 berarti salary tertinggi dalam perusahaan tersebut. Jika Anda menginginkan salary tertinggi di setiap department (DEPTNO) tambahkan klausa GROUP BY deptno, perintah diatas menjadi : SQL> SELECT deptno, max(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO MAX(SAL) ---------- ---------- 30 2850 20 3000 10 5000 Silahkan dicoba dengan group funtion yang lain. HAVING Jika dalam single-row function untuk menyeleksi data kita menggunakan klausa WHERE. Sedangkan untuk menyeleksi data dimana data yang akan kita seleksi merupakan hasil dari group function digunakan HAVING. Sebagai contoh, tampilkan Department yang rata-rata salary-nya diatas 2500. Mari kita lihat dulu rata-rata gaji per-department: SQL> SELECT deptno, avg(sal) 2 FROM emp 3 GROUP BY deptno; DEPTNO AVG(SAL)

---------- ---------- 30 1566.66667 20 2175 10 2916.66667 Jika yang ingin ditampilkan adalah department yang rata-rata salarynya diatas 2500 berarti yang dijadikan pembanding adalah AVG(SAL) karena ini merupakan group function maka harus digunakan HAVING untuk menyeleksinya. HAVING boleh diletakkan sebelum atau sesudah GROUP BY SQL> SELECT deptno, avg(sal) 2 FROM emp 3 GROUP BY deptno 4 HAVING avg(sal) > 2500; DEPTNO AVG(SAL) ---------- ---------- 10 2916.66667 GROUP BY dengan ROLLUP dan CUBE ROLLUP dan CUBE adalah group function yang sering digunakan dalam desain query untuk data warehouse. ROOLUP digunakan untuk menghitung nilai sub total dan total dari suatu group data sedangkan CUBE digunakan untuk menghitung sub total dari group data dalam beberapa dimensi. Ok, untuk lebih memahami pemakaian ROLLUP dan CUBE buatlah tabel penduduk beserta isinya dengan menjalankan script create_penduduk.sql, ambil script disini. Setelah didownload dan letakkan di c:\create_penduduk.sql Jalankan script dengan cara berikut: SQL> @c:\create_penduduk.sql Tabel penduduk berisi data sebanyak 40 penduduk yang dibagi dalam 2 kecamatan dan 4 kelurahan, jenis kelamin laki-laki L dan perempuan P. Datanya seperti ini :

SQL> select * from penduduk; ID NAMA J KECAMATAN KELURAHAN ---------- --------------- - --------------- --------------- 1 JOHAN L Kecamatan 1 Kelurahan 1 2 AMIR L Kecamatan 1 Kelurahan 1 3 KUSNANTO L Kecamatan 1 Kelurahan 1 4 MELISA P Kecamatan 1 Kelurahan 1 5 KUSNO L Kecamatan 1 Kelurahan 1 6 ANDRIANI P Kecamatan 1 Kelurahan 1 7 AHMAD L Kecamatan 1 Kelurahan 1 --> dan seterusnya... Kita diminta untuk menghitung jumlah penduduk per-kelurahan dan per-kecamatan. Apakah hal ini bisa diselesaikan dengan GROUP BY?, mari kita coba. SQL> SELECT kecamatan, kelurahan, COUNT(id) as "JlhPenduduk" 2 FROM penduduk 3 GROUP BY kecamatan, kelurahan 4 ORDER BY kecamatan, kelurahan; KECAMATAN KELURAHAN JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kecamatan 1 Kelurahan 2 6 Kecamatan 2 Kelurahan 3 5 Kecamatan 2 Kelurahan 4 10 Ternyata, dengan GROUP BY kita hanya bisa menampilkan sub total per kelurahan sedangkan total total per-kecamatan total keseluruhan penduduk tidak bisa dimunculkan. Untuk itu kita gunakan GROUP BY dengan ROLLUP, sbb: SQL> SELECT kecamatan, kelurahan, COUNT(id) as "JlhPenduduk" 2 FROM penduduk

3 GROUP BY ROLLUP(kecamatan, kelurahan) 4 ORDER BY kecamatan, kelurahan; KECAMATAN KELURAHAN JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kecamatan 1 Kelurahan 2 6 Kecamatan 1 25 Kecamatan 2 Kelurahan 3 5 Kecamatan 2 Kelurahan 4 10 Kecamatan 2 15 40 7 rows selected.. Kita bisa mempermanis tampilan dengan sedikit trik seperti ini : SQL> BREAK ON kecamatan SKIP 1 SQL> SELECT kecamatan, 2 NVL(kelurahan,'Total --->') As "Kelurahan", 3 COUNT(id) AS "JlhPenduduk" 4 FROM penduduk 5 GROUP BY ROLLUP(kecamatan, kelurahan) 6 ORDER BY kecamatan, kelurahan; KECAMATAN Kelurahan JlhPenduduk --------------- --------------- ----------- Kecamatan 1 Kelurahan 1 19 Kelurahan 2 6 Total ---> 25 Kecamatan 2 Kelurahan 3 5 Kelurahan 4 10

Total ---> 15 Total ---> 40 7 rows selected. Dengan ROLLUP dan sedikit modifikasi tampilan masalah menghitung subtotal terselesaikan. Catatan : untuk fungsi NVL silahkan lihat di single-row function. Bagaimana dengan CUBE?, seperti sudah disebutkan diatas, CUBE digunakan untuk membuat cross-tabulasi(sub-total lebih dari satu dimensi). Misal kita diminta untuk menghitung jumlah penduduk per-kecamatan berdasarkan jenis kelaminnya, kemudian setelah itu juga dihitung berapa jumlah penduduk berdasarkan jenis kelamin tanpa memperhatikan kecamatannya. Mungkin pembaca masih sedikit bingung mencerna kalimat diatas. Sebaiknya kita coba saja langsung, caranya adalah sbb: SQL> SELECT kecamatan, 2 jk as "JenKelamin", 3 COUNT(id) as "JlhPenduduk" 4 FROM penduduk 5 GROUP BY CUBE(kecamatan, jk) 6 ORDER BY kecamatan, jk; KECAMATAN J JlhPenduduk --------------- - ----------- Kecamatan 1 L 7 P 18 25 Kecamatan 2 L 5 P 10 15 L 12 P 28

9 rows selected. 40 Apakah Anda masih bingung membaca hasil query diatas?, sebenarnya secara simple, hasil query diatas bisa ditampilkan dengan bentuk tabel seperti ini : Dengan ilustrasi gambar diatas mudah-mudahan Anda bisa lebih memahami tentang CUBE. Demikian ulasan tentang Aggregasi, GROUP BY, ROLLUP dan CUBE. Semoga bermanfaat.