• Tidak ada hasil yang ditemukan

Think Different Basis Data : SQL- QUERY CF124g05

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Basis Data : SQL- QUERY CF124g05"

Copied!
21
0
0

Teks penuh

(1)

© Copyright IBM Corporation 2007

(2)

© Copyright IBM Corporation 2007

Unit Objectives

After completing this unit, you should be able to:

ƒ Describe the difference between scalar and column functions

ƒ List the more common DB2 column functions

(3)

Function_name(f_argument)

Column Scalar

Functions Functions

AVG(SALARY) YEAR(HIREDATE)

________ __________ _____

________ __________ _____

________ ______ __________ _____

________ __________ _____

________

}

__________ _____

(4)

© Copyright IBM Corporation 2007

Column Functions

COUNT(DISTINCT col-name) COUNT_BIG(DISTINCT col-name)

Determine the number of unique non-null values in a column

COUNT(*) COUNT_BIG(*)

Determine the number of rows meeting the search condition

MAX(expression)

Find Maximum Value

(5)

AVG MIN MAX COUNT DEPT SUM

27303.59375000 15340.00 52750.00 32 8 873715.00

SELECT SUM(SALARY) AS SUM, AVG(SALARY) AS AVG, MIN(SALARY ) AS MIN, MAX(SALARY) AS MAX, COUNT(*) AS COUNT,

COUNT (DISTINCT WORKDEPT) AS DEPT FROM EMPLOYEE

(6)

© Copyright IBM Corporation 2007

EMPNO SALARY BONUS COMM SALARY+BONUS+COMM 000010 1000 500 100 1600 000020 2000 NULL 300 NULL 000030 2500 400 NULL NULL 000040 1500 100 400 2000 --- --- --- ---- ---Sum: 7000 1000 800 --> 8800 3600 ===== ===== ==== ====

SUM(SALARY)+SUM(BONUS)+SUM(COMM)

VERSUS

(7)

SUM

373020.00

SELECT SUM(SALARY) AS SUM FROM EMPLOYEE

WHERE WORKDEPT LIKE 'D%'

I need the sum of all salaries for workdepts beginning

with the letter D

(8)

© Copyright IBM Corporation 2007

I need a listing of the salaries for all employees in the departments A00, B01, and C01. In addition, for these departments,

I want the totals spent for salaries.

(9)

DEPT_GROUP EDLEVEL AVGSAL A 18 52750.00 A 19 46500.00 B 18 41250.00 C 18 28420.00 C 20 38250.00 D 18 29840.00

SELECT SUBSTR(WORKDEPT,1,1) AS DEPT_GROUP, EDLEVEL, DECIMAL(AVG(SALARY),9,2) AS AVGSAL FROM EMPLOYEE

WHERE EDLEVEL >= 18 GROUP BY SUBSTR(WORKDEPT,1,1), EDLEVEL

GROUP BY more than one Column

(10)

© Copyright IBM Corporation 2007

Only applies to queries with COLUMN FUNCTIONS in the SELECT Clause

If a SELECT clause has COLUMN functions

AND

columns not in COLUMN functions

ALL

columns not in COLUMN functions must be included in the GROUP BY clause

(11)

MAJPROJ DEPTNO AVG(PRSTAFF) COUNT(*) SELECT MAJPROJ, DEPTNO,

AVG(PRSTAFF) AS "AVG(PRSTAFF)",

COUNT(*) AS "COUNT(*)" FROM PROJECT

GROUP BY MAJPROJ, DEPTNO ORDER BY MAJPROJ DESC

(12)

© Copyright IBM Corporation 2007

SUM A00

C01

Now, I just want to see departments with total spent for salaries higher than 50000

(13)

CLERK

By department, I need a listing of jobs, excluding managers, designer,

and field representative, with an average salary higher than $25,000.

(14)

© Copyright IBM Corporation 2007 with more than one employee

(15)

Restrictions

ƒ Column functions may be specified only in

– SELECT – HAVING

ƒ SELECT may specify only

– Column functions

– Columns specified in 'GROUP BY'

ƒ HAVING may specify

Any column function on any column in a table being queried. This column need not be in the SELECT.

(16)

© Copyright IBM Corporation 2007

SELECT DEP, JOB, AVG(SAL)

FROM EMPL

WHERE JOB <> 'M'

GROUP BY DEP, JOB

HAVING AVG(SAL) > 28000

ORDER BY 3 DESC

(17)

JOB SAL DEP

BASE TABLE WHERE GROUP BY

(18)

© Copyright IBM Corporation 2007

(19)

Checkpoint

1. True or False? A scalar function produces a summary row for a set of rows.

2. A SELECT statement whose SELECT list includes a

column function (SUM, AVG, MIN, MAX, COUNT, and so forth) and three columns not in column functions does not require a GROUP BY clause.

3. Which clause qualifies groups for further processing?

a. SELECT

4. True or False? The following query is syntactically correct.

SELECT WORKDEPT, AVG(SALARY) FROM EMPLOYEE

WHERE AVG(SALARY) > 20000 GROUP BY WORKDEPT

(20)

© Copyright IBM Corporation 2007

Checkpoint Solutions

1. False. A column function produces a summary row for a set of rows.

2. False. A GROUP BY is required and all three columns not in column functions must be listed in the GROUP BY

clause.

3. e

4. False. Column functions may not be used in a WHERE

(21)

Unit Summary

Having completed this unit, you should be able to:

ƒ Describe the difference between scalar and column functions

ƒ List the more common DB2 column functions

Referensi

Dokumen terkait

DAFTAR PENYESUAIAN/PENETAPAN TUNJANGAN POKOK ORANGTUA ANGGOTA KEPOLISIAN NEGARA REPUBLIK INDONESIA. YANG GUGUR/TEWAS/MENINGGAL DUNIA DALAM DAN/ATAU OLEH

Pengembangan Model Pembelajaran Tematik untuk Meningkatkan Karakter Siswa dalam Pembelajaran Integrative Pendidikan Agama dan Lingkungan Hidup Pada Siswa Sekolah Adiwiyata (

(1) Pembayaran pensiun pokok purnawirawan, warakawuri/duda, tunjangan anak yatim/piatu, anak yatim piatu, dan tunjangan orang tua Anggota Tentara Nasional Indonesia yang

In all trials, the late-maturity varieties grew con- siderably taller, exhibited higher growth rates, developed larger stem diameters and reached higher LAI values compared to

The microwave assisted carba- mate / phosphate esters obtained at 105°C revealed a slightly higher crystallinity than the industrial product and microwave assisted carbamate /

bahwa dalam rangka meningkatkan daya guna dan hasil guna serta kesejahteraan Anggota Tentara Nasional Indonesia, perlu mengubah gaji pokok Anggota Tentara Nasional

From our point of view, the program of personal and professional development and managerial training of competitive ability of specialists in the field of physical

Khususnya untuk bunyi [n] sebaiknya di buat penelitian lebih mendalam karena dalam penelitian ini [n] tidak diteliti dengan mendalam sedangkan bunyi [n] itu adalah