본문 바로가기

Oracle Data Base

[SQL Plus] GROUP BY, HAVING, 그룹 함수 - min, max, sum, avg, count(*)

1. 그룹 함수

min(필드명) -> 최소값

max(필드명) -> 최대값

sum(필드명) -> 합계

avg(필드명) -> 평균

count(*) or count(필드명) -> 필드에 들어가 있는 개수

 

SQL> select COUNT(*),trunc(AVG(sal)),MAX(sal),MIN(sal),SUM(sal)
  2  from emp;

 

결과>

  COUNT(*) TRUNC(AVG(SAL))   MAX(SAL)   MIN(SAL)   SUM(SAL)
  ----------    ---------------     ----------     ----------    ----------
        14            2073             5000            800         29025

 

2. GROUP BY

형식) select 필드명, 그룹함수 from 테이블명 where 조건식

        GROUP BY 그룹지어줄_필드명;

 

SQL> select ename,count(*) from emp where sal>=3000
        GROUP BY ename;


결과>
ENAME        COUNT(*)
---------- ----------
FORD                1
SCOTT               1
KING                1

 

3. HAVING

형식) select 필드명 from 테이블명 where 조건식

group by 필드명 HAVING 그룹에_관한_조건식 order by 정렬조건;

 

SQL>  select deptno,sum(sal) "급여 합계" from emp
         group by deptno HAVING count(*)>=4;

 

결과>
    DEPTNO  급여 합계
    ---------- ----------
        30       9400
        20      10875