• Tidak ada hasil yang ditemukan

Fungsi Group - Repository UNIKOM

N/A
N/A
Protected

Academic year: 2019

Membagikan "Fungsi Group - Repository UNIKOM"

Copied!
25
0
0

Teks penuh

(1)

4

Copyright © 2006, Oracle. All rights reserved.

(2)

Objectives

After completing this lesson, you should be able to do

the following:

Identify the available group functions

Describe the use of group functions

Group data by using the

GROUP BY

clause

Include or exclude grouped rows by using the

(3)

Copyright © 2006, Oracle. All rights reserved. 4 - 3

What Are Group Functions?

Group functions operate on sets of rows to give one

result per group.

EMPLOYEES

Maximum salary in

EMPLOYEES table

(4)

Types of Group Functions

AVG

COUNT

MAX

MIN

STDDEV

SUM

VARIANCE

(5)

Copyright © 2006, Oracle. All rights reserved. 4 - 5

SELECT [column,] group_function(column), ...

FROM table

[WHERE condition] [GROUP BY column] [ORDER BY column];

(6)

SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees

WHERE job_id LIKE '%REP%';

Using the

AVG

and

SUM

Functions

(7)

Copyright © 2006, Oracle. All rights reserved. 4 - 7

SELECT MIN(hire_date), MAX(hire_date) FROM employees;

Using the

MIN

and

MAX

Functions

(8)

COUNT(*)

returns the number of rows in a table:

COUNT(expr)

returns the number of rows with

non-null values for the

expr

:

SELECT COUNT(commission_pct) FROM employees

WHERE department_id = 80; SELECT COUNT(*)

FROM employees

WHERE department_id = 50;

Using the

COUNT

Function

1

(9)

Copyright © 2006, Oracle. All rights reserved. 4 - 9

SELECT COUNT(DISTINCT department_id) FROM employees;

Using the

DISTINCT

Keyword

COUNT(DISTINCT expr)

returns the number of distinct

non-null values of the

expr

.

(10)

Group functions ignore null values in the column:

The

NVL

function forces group functions to include

null values:

SELECT AVG(commission_pct) FROM employees;

SELECT AVG(NVL(commission_pct, 0)) FROM employees;

Group Functions and Null Values

1

(11)

Copyright © 2006, Oracle. All rights reserved. 4 - 11

Creating Groups of Data

EMPLOYEES

4400 9500 3500 6400 10033 Average salary in EMPLOYEES
(12)

You can divide rows in a table into smaller groups by

using the

GROUP

BY

clause.

Creating Groups of Data:

GROUP

BY

Clause Syntax

SELECT column, group_function(column)

FROM table

[WHERE condition]

(13)

Copyright © 2006, Oracle. All rights reserved. 4 - 13

SELECT department_id, AVG(salary) FROM employees

GROUP BY department_id ;

Using the

GROUP

BY

Clause

(14)

Using the

GROUP

BY

Clause

The

GROUP

BY

column does not have to be in the

SELECT

list.

SELECT AVG(salary) FROM employees

(15)

Copyright © 2006, Oracle. All rights reserved. 4 - 15

Grouping by More Than One Column

EMPLOYEES

Add the salaries in the EMPLOYEES

table for each job, grouped by department

(16)

SELECT department_id dept_id, job_id, SUM(salary) FROM employees

GROUP BY department_id, job_id ;

Using the

GROUP

BY

Clause

(17)

Copyright © 2006, Oracle. All rights reserved. 4 - 17

Illegal Queries

Using Group Functions

Any column or expression in the

SELECT

list that is not an

aggregate function must be in the

GROUP

BY

clause:

SELECT department_id, COUNT(last_name) FROM employees;

SELECT department_id, COUNT(last_name) *

ERROR at line 1:

ORA-00937: not a single-group group function

(18)

Illegal Queries

Using Group Functions

You cannot use the

WHERE

clause to restrict groups.

You use the

HAVING

clause to restrict groups.

You cannot use group functions in the

WHERE

clause.

SELECT department_id, AVG(salary) FROM employees

WHERE AVG(salary) > 8000 GROUP BY department_id;

WHERE AVG(salary) > 8000 *

ERROR at line 3:

(19)

Copyright © 2006, Oracle. All rights reserved. 4 - 19

Restricting Group Results

EMPLOYEES

The maximum salary

per department when it is greater than

(20)

SELECT column, group_function

FROM table

[WHERE condition]

[GROUP BY group_by_expression]

Restricting Group Results

with the

HAVING

Clause

When you use the

HAVING

clause, the Oracle server

restricts groups as follows:

1.

Rows are grouped.

2.

The group function is applied.

(21)

Copyright © 2006, Oracle. All rights reserved. 4 - 21

SELECT department_id, MAX(salary) FROM employees

GROUP BY department_id

HAVING MAX(salary)>10000 ;

(22)

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);

(23)

Copyright © 2006, Oracle. All rights reserved. 4 - 23

SELECT MAX(AVG(salary)) FROM employees

GROUP BY department_id;

Nesting Group Functions

(24)

SELECT column, group_function

FROM table

[WHERE condition]

[GROUP BY group_by_expression] [HAVING group_condition]

[ORDER BY column];

Summary

In this lesson, you should have learned how to:

Use the group functions

COUNT

,

MAX

,

MIN

, and

AVG

Write queries that use the

GROUP

BY

clause

(25)

Copyright © 2006, Oracle. All rights reserved. 4 - 25

Practice 4: Overview

This practice covers the following topics:

Writing queries that use the group functions

Grouping by rows to achieve more than one result

Referensi

Dokumen terkait

[r]

Then the man got to so angry that the shouted over and over, “Say Catano, or I’ll kill you!” but the bird wouldn’t talk.. One day after trying for many hours to make the bird

dan Dari hasil pengukuran pada frekuensi 1,27 GHz, penguat daya pada satu tingkat ini memiliki penguatan sebesar 16.025 dB, dan penguatan pada dua tingkat sebesar -8,1888 dB..

dimaksud dalam huruf a, perlu menetapkan Peraturan Pemerintah tentang Perubahan Ketujuh Atas Peraturan Pemerintah Nomor 29 Tahun 2001 tentang Peraturan Gaji

Dalam Pasal 29 ayat (4) tersebut di atas memungkinkan dilakukannya perubahan perjanjian perkawinan dengan catatan tidak boleh merugikan pihak ketiga, sehingga

Untuk mengamati besarnya kalor yang digunakan ( q use ) pada kolektor surya 9 haluan dan 7 haluan dengan variasi debit 300 cc/min, 350 cc/min, dan 400 cc/min terhadap

Dengan disiplin kerja yang tinggi maka kinerja karyawanpun akan lebih baik?. Namun terkadang ada karyawan yang suka membolos, datang

Pada hari ini Selasa tanggal Dua Puluh Tujuh bulan Oktober tahun Dua Ribu Lima Belas kami yang bertanda tangan dibawah ini Kelompok Kerja Pengadaan Jasa Konsultansi dan Pengadaan