2. SQL기초강좌_집합함수(Aggreation Function)
집합함수
COUNT({* | [DISTINCT|ALL] expr}) :
추출된 행(ROW)수를 반환한다.
DISTINCT를 사용 했다면 중복된 행을 제거한 행수를 반환하고 , expr을 사용했다면
expr이 NOT NULL인 행의 수를 반환한다. ASTERISK(*)는 중복 과 NULL을 포함한 모든
행의 수를 반환 할 때 사용한다.
4. SQL> select count(sal) from sawon;
COUNT(SAL)
---------------
4
SQL> select count(distinct sal) from sawon;
COUNT(DISTINCTSAL)
----------------------
3
--아래의 ASTERISK(*)는 결국 테이블등의 전체 건수를 파악 할 때 자주 사용 된다.
SQL> select count(*) from sawon;
COUNT(*)
----------
5
SQL기초강좌_집합함수(Aggreation Function)
집합함수
5. --다음 예문은 부서별로 인원 수를 출력 하는 예문이다.
SQL> select buseo, count(buseo)||'명' from sawon
2 group by buseo;
BUSEO COUNT(BUSEO)||'명'
---------- -----------------------------------------
관리부 2명
영업부 3명
SQL기초강좌_집합함수(Aggreation Function)
집합함수
6. --각 직무별로 최대급여와 인원수를 구하되 직무별 인원수가 2명 이상인 직무
만 나타내는 예문이다. (평균급여의 소수점 이하는 반올림)
SQL> select job "직무", round(max(sal)) "최대 급여", count(*) "인원수"
2 from emp
3 group by job
4 having count(*)>2;
직무 최대 급여 인원수
--------- ----------- ----------
CLERK 1300 4
MANAGER 2975 3
SALESMAN 1600 4
SQL기초강좌_집합함수(Aggreation Function)
집합함수
7. -- 사원이 3명이상인 JOB에 대해 JOB별 평균급여를 계산하시오.
SQL> select job, avg(sal) from emp
2 group by job
3 having count(*) > 3;
JOB AVG(SAL)
--------- ----------
CLERK 1037.5
SALESMAN 1400
SQL기초강좌_집합함수(Aggreation Function)
집합함수
8. --아래는 sawon 테이블에서 부서별로 급여의 최대, 최소값을 구하는 예문이다.
SQL> select buseo, max(sal) from sawon
2 group by buseo;
BUSEO MAX(SAL)
---------- ----------
관리부 2000000
영업부 3000000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
MAX, MIN함수는 숫자, 문자, 날짜 등 어떠한 자료형 이라도 사용이 가능하다.
MAX([DISTINCT|ALL] expr) : 최대값을 반환한다.
MIN([DISTINCT|ALL] expr) : 최소값을 반환한다.
9. --아래는 sawon 테이블에서 부서별로 급여의 최대, 최소값을 구하는 예문이다.
SQL> select buseo, min(sal) from sawon
2 group by buseo;
BUSEO MIN(SAL)
---------- ----------
관리부 1000000
영업부 2000000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
10. 아래는 sawon 테이블에서 급여의 총합, 부서별로 급여의 합을 구하는 예문이다.
SQL> select sum(sal) from sawon;
SUM(SAL)
----------
8000000
SQL> select buseo, sum(sal) from sawon
2 group by buseo;
BUSEO SUM(SAL)
---------- ----------
관리부 3000000
영업부 5000000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
SUM([DISTINCT|ALL] n) : 합계를 반환한다. 인수 n은 테이블의 숫자형 칼럼 이어야 하며
값에 NULL이 포함되어 있을 때는 합계에 포함되지 않는다.
11. --아래 예문은 부서별로 급여의 총합을 출력 하는데 부서의 급여 평균이 1,500,000원
보다 큰 경우만 출력하는 예문이다.
SQL> select buseo, sum(sal) from sawon
2 group by buseo
3 having avg(sal) > 1500000;
BUSEO SUM(SAL)
-------- ----------
영업부 5000000
SQL기초강좌_집합함수(Aggreation Function)
집합함수
12. -- EMP 테이블에서 JOB별 최고급여를 출력하는데, 최고급여가 높은 것부터 출력하시
오.
SQL> select job, max(sal) from emp
2 group by job
3 order by max(sal);
JOB MAX(SAL)
--------- ----------
CLERK 1300
SALESMAN 1600
MANAGER 2975
ANALYST 3000
PRESIDENT 5000
SQL기초강좌_집합함수(Aggreation Function)
집합함수