Senin, 14 November 2011

Lesson 4 : Melaporkan Pengumpulan Data Menggunakan Fungsi Group

Setelah melengkapi pelajaran ini, kamu harus mampu untuk melakukan hal-hal berikut: 

  • Mengidentifikasi fungsi grup yang tersedia
  • Mendeskripsikan penggunaan dari fungsi grup.
  • Penggolingan data dengan menggunakan kata GROUP BY
  • Memasukkan atau mengeluarkan kumpulan baris dengan menggunakan kata HAVING

    Menggunakan Fungsi AVD dan SUM
    SELECT AVG(salary), MAX(salary),
           MIN(salary), SUM(salary)
    FROM   employees
    WHERE  job_id LIKE '%REP%';

    Menggunakan Fungsi MIN dan MAX
    SELECT MIN(hire_date), MAX(hire_date)
    FROM    employees;


    Menggunakan Fungsi COUNT
    COUNT (*) mengembalikan angka dari baris pada suatu tabel
    SELECT COUNT(*)
    FROM   employees
    WHERE  department_id = 50;

    COUNT (expr) mengembalikan angka dari baris dengan nilai tidak NULL untuk expr
    SELECT COUNT(commission_pct)
    FROM   employees
    WHERE  department_id = 80;

    Menggunakan Kata Kunci DISTINCT
    SELECT COUNT(DISTINCT department_id)
    FROM   employees;

    Fungsi Group dan Nilai NULL
    Fungsi Group mengabaikan nilai NULL pada kolom :
    SELECT AVG(commission_pct)
    FROM   employees;

    Fungsi NVL memaksa Fungsi Group untuk memasukkan nilai NULL:
    SELECT AVG(NVL(commission_pct, 0))
    FROM   employees;

    Menggunakan Kalimat GROUP BY
    Semual kolom yang berada dalam daftar SELECT yang tidak ada dalam fungsi GROUP pasti berada dalam kalimat GROUP BY
    SELECT   department_id, AVG(salary)
    FROM     employees
    GROUP BY department_id ;

    Kolom GROUP BY tidak harus berada dalam daftar SELECT
    SELECT   AVG(salary)
    FROM     employees
    GROUP BY department_id ;

    Menggunakan Kalimat GROUP BY pada Kolom Perkalian
    SELECT   department_id dept_id, job_id, SUM(salary)
    FROM     employees
    GROUP BY department_id, job_id ;

    Queri-Queri Ilegal Menggunakan Fungsi Group
    Kolom atau ekspresi apapun dalam daftar SELECT yang bukan kumpulan fungsi pasti berada dalam kalimat GROUP BY :
    SELECT department_id, COUNT(last_name)
    FROM   employees;

    SELECT   department_id, AVG(salary)
    FROM     employees
    WHERE    AVG(salary) > 8000
    GROUP BY department_id;

    Menggunakan Kalimat HAVING
    SELECT   department_id, MAX(salary)
    FROM     employees
    GROUP BY department_id
    HAVING   MAX(salary)>10000 ;

    SELECT   job_id, SUM(salary) PAYROLL
    FROM     employees
    WHERE    job_id NOT LIKE '%REP%'
    GROUP BY job_id
    HAVING   SUM(salary) > 13000
    ORDER BY SUM(salary);

    Fungsi Group Cadangan
    Menampilkan rata-rata gaji maksimum
    SELECT   MAX(AVG(salary))
    FROM     employees
    GROUP BY department_id;













Tidak ada komentar: