group functions
DESCRIPTION
Group Functions. CSED421: Database Systems Lab TA: 이종욱 , 유개원. Contents. Group Functions AVG / COUNT / MAX / MIN / SUM GROUP BY Phrase HAVING Phrase Practice. Group Functions. COUNT (* | [DISTINCT] column) MAX ([DISTINCT] column) MIN ([DISTINCT] column) SUM ([DISTINCT] column) - PowerPoint PPT PresentationTRANSCRIPT
Group FunctionsGroup Functions
CSED421: Database Systems Lab
TA: 이종욱 , 유개원
ContentsContents
Group Functions AVG / COUNT / MAX / MIN / SUM
GROUP BY Phrase
HAVING Phrase
Practice
Page 2
Group FunctionsGroup Functions
COUNT (* | [DISTINCT] column)
MAX ([DISTINCT] column)
MIN ([DISTINCT] column)
SUM ([DISTINCT] column)
AVG ([DISTINCT] column)
NVL (column, 0) Null 을 특정 값으로 대체한다 ex. AVG(NVL(discount, 0))
SELECT Count(Job)FROM EMPGROUP BY Job
Page 3
GROUP BY PhraseGROUP BY Phrase
SELECT column1FROM table [WHERE condition][GROUP BY column2][ORDER BY column3 [ASC|DESC]]
Column1 에 가능한 컬럼 column2
Group Function 이 적용된 column2 이외의 컬럼
Page 4
HAVING PhraseHAVING Phrase
Group Function 에 조건을 주기 위해 사용 SELECT column1
FROM table[WHERE condition][GROUP BY column2][HAVING group_function_condition][ORDER BY column3 [ASC|DESC]]
HAVING 의 조건절에는 Group Function 을 적용한 컬럼이 사용 가능하다 .
Page 5
HAVING PhraseHAVING Phrase
Examples SELECT a, COUNT(c), SUM(c)
FROM exampleGROUP BY a HAVING SUM(c)>20;
SELECT a, b, SUM(c) FROM exampleGROUP BY a, bHAVING SUM(c)>10;
SELECT a, COUNT(c) COUNT_C, SUM(c) SUM_C FROM exampleGROUP BY a HAVING SUM(c)>20;
Page 6
PracticePractice
EMP table & DEPT table @emp.sql
Page 7
EMPNO NUMBER(4) 직번
ENAME VARCHAR2(10)
이름
JOB VARCHAR2(9) 직위
MGR NUMBER(4) 상사 직번
HIREDATE DATE 고용일
SAL NUMBER(7, 2) 급여
COMM NUMBER(7, 2) 추가 급여
DEPTNO NUMBER(2) 부서번호
DEPTNO NUMBER(2) 부서번호
DNAME VARCHAR2(14) 부서명
LOC VARCHAR2(13) 부서위치
Page 8
Some HintsSome Hints
AS phrase 사용 방법 SELECT sum(sal) sum_sal
FROM EMPGROUP BY salORDER BY sum_sal;
간단한 Join 방법 SELECT E.ename, D.dname
FROM Emp E, Dept DWHERE E.deptno = D.deptno;
NULL 조건을 체크 하기 위한 방법 SELECT E.ename
FROM EMPWHERE mgr is [not] null;
Page 9
PracticePractice
1. EMP 테이블에서 각 직원들의 총 급여를 검색하시오 . 이름 , 직위 , 총 급여를 출력하시오 .
총 급여는 기본 급여 및 추가
급여를 합한다 .
추가 급여는 기본값이 0 원이다 .
결과순서는 총 급여의 내림차순
으로 출력하시오
Page 10
PracticePractice
2. EMP 테이블에서 각 부서명 별로 몇 명의 사람이 있는지를 검색하시오 . 결과는 부서명과 사람수를 출력한다 .
3. EMP 테이블에서 관리자가 있는 사람들에 대해서 각 부서별로 몇 명의 사람이 있는지 검색하시오 . 결과는 부서번호와 사람수를 출력한다 .
결과 순서는 부서번호의 오름 차순으로 출력한다 .
Page 11
PracticePractice
4. EMP 테이블에서 부서별 평균 급여를 검색하시오 . 부서번호와 평균 급여를 출력한다 .
평균 급여의 내림차순으로 출력한다 .
Page 12
PracticePractice
5. EMP 테이블에서 부서별 , 직위 별 급여의 합을 검색하시오 . 부서번호 , 직위 , 급여의 합 , 해당되는 직원 수를 출력한다 .
직위별 급여의 합의 내림차순으로 출력한다 .
Page 13
PracticePractice
6. 직위별 직원수가 3 명 이상인 직위별 평균 급여를 검색하시오 . 직위 , 급여의 합 , 해당되는 직원 수 , 평균 급여를 출력한다 .
직위별 급여의 합의 내림차순으로 출력한다 .
Page 14
PracticePractice
7. EMP 테이블에서 관리자의 직번과 관리자가 관리하는 사원들의 평균 급여를 검색하시오 . 관리자 직번 , 관리 사원들의 급여의 합 , 관리 사원들의 수 , 관리
사원들의 평균 급여를 출력한다 .
결과 순서는 평균 급여의 내림차순으로 출력하시오 .
Page 15
PracticePractice
8. EMP 테이블에서 관리자의 직번과 관리자가 관리하는 사원 수가 2 명 이상인 경우에 대해서 총 급여의 평균급여를 검색하시오 . 총 급여는 기본 급여 및 추가 급여를 합한다 .
추가 급여는 기본값이 0 원이다 .
관리자 직번 , 관리 사원들의 급여의 합 , 관리 사원들의 수 , 관리 사원들의 평균 급여를 출력한다 .
결과 순서는 평균 총 급여의 내림차순으로 출력하시오 .
Page 16