160 likes | 331 Views
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)
E N D
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) • AVG ([DISTINCT] column) • NVL (column, 0) • Null 을특정 값으로 대체한다 • ex. AVG(NVL(discount, 0)) • SELECT Count(Job)FROM EMPGROUP BY Job
GROUP BY Phrase • SELECT column1FROM table [WHERE condition][GROUP BY column2][ORDER BY column3 [ASC|DESC]] • Column1에 가능한 컬럼 • column2 • Group Function이 적용된 column2 이외의 컬럼
HAVING Phrase • Group Function에 조건을 주기 위해 사용 • SELECT column1FROM table[WHERE condition][GROUP BY column2][HAVING group_function_condition][ORDER BY column3 [ASC|DESC]] • HAVING의 조건절에는 • Group Function을 적용한 컬럼이 사용 가능하다.
HAVING 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_CFROM exampleGROUP BY a HAVING SUM(c)>20;
Practice • EMP table & DEPT table • @emp.sql
Some Hints • AS phrase 사용 방법 • SELECT sum(sal) sum_salFROM EMPGROUP BY salORDER BY sum_sal; • 간단한 Join 방법 • SELECT E.ename, D.dnameFROM Emp E, Dept DWHERE E.deptno = D.deptno; • NULL 조건을 체크 하기 위한 방법 • SELECT E.enameFROM EMPWHERE mgr is [not] null;
Practice • 1. EMP 테이블에서 각 직원들의 총 급여를 검색하시오. • 이름, 직위, 총 급여를 출력하시오. • 총 급여는 기본 급여 및 추가 급여를 합한다. • 추가 급여는 기본값이 0원이다. • 결과순서는 총 급여의 내림차순 으로 출력하시오
Practice • 2. EMP 테이블에서 각 부서명 별로 몇 명의 사람이 있는지를 검색하시오. • 결과는 부서명과 사람수를 출력한다. • 3. EMP 테이블에서 관리자가 있는 사람들에 대해서 각 부서별로 몇 명의 사람이 있는지 검색하시오. • 결과는 부서번호와 사람수를 출력한다. • 결과 순서는 부서번호의 오름 차순으로 출력한다.
Practice • 4. EMP 테이블에서 부서별 평균 급여를 검색하시오. • 부서번호와 평균 급여를 출력한다. • 평균 급여의 내림차순으로 출력한다.
Practice • 5. EMP 테이블에서 부서별, 직위 별 급여의 합을 검색하시오. • 부서번호, 직위, 급여의 합, 해당되는 직원 수를 출력한다. • 직위별 급여의 합의 내림차순으로 출력한다.
Practice • 6. 직위별 직원수가 3명 이상인 직위별 평균 급여를 검색하시오. • 직위, 급여의 합, 해당되는 직원 수,평균 급여를 출력한다. • 직위별 급여의 합의 내림차순으로 출력한다.
Practice • 7. EMP 테이블에서 관리자의 직번과 관리자가 관리하는 사원들의 평균 급여를 검색하시오. • 관리자 직번,관리 사원들의 급여의 합,관리 사원들의 수,관리 사원들의 평균 급여를 출력한다. • 결과 순서는 평균 급여의 내림차순으로 출력하시오.
Practice • 8. EMP 테이블에서 관리자의 직번과 관리자가 관리하는 사원 수가 2명 이상인 경우에 대해서 총 급여의 평균급여를 검색하시오. • 총 급여는 기본 급여 및 추가 급여를 합한다. • 추가 급여는 기본값이 0원이다. • 관리자 직번,관리 사원들의 급여의 합,관리 사원들의 수,관리 사원들의 평균 급여를 출력한다. • 결과 순서는 평균 총 급여의 내림차순으로 출력하시오.