본문 바로가기
컴소니/DB

[오라클 DBMS 공부] 오라클 내장함수 - 집계함수(feat. 중복체크)

by 금소니 2020. 8. 25.
반응형

#110

1. 집계함수란?

여러개의 데이터들에 대하여 통계를 내거나 여러 계산들을 한데 모아서 계산하는 함수입니다.

 

2. 집계함수의 종류

1) COUNT

출력된 데이터의 건수가 몇 건이 존재하는지 반환하는 함수입니다.

EX) COUNT, 사원 수 출력

COUNT 함수의 경우 주로 ' * '와 함께 사용됩니다.

COUNT 함수에는 컬럼이 올 수도 있지만 주로 해당 테이블에 조건에 따른 ROW 수를 세기때문에 결과가 같아 ' * '로 많이 사용합니다.

 

- Feat. 중복제거

COUNT 함수를 사용하다보면 중복을 제거하여 사용하는 경우가 많이 있습니다.

이 때 사용하는 명령어가 DISTINCT인데요.

중복을 제거하고 싶은 컬럼 앞에 붙여 사용합니다.

EX) COUNT, DISTINCT, 사원들이 속한 부서의 수

EMPLOYEES 테이블에는 총 107개의 데이터가 있지만 DISTINCT를 사용하여 중복을 제외한 부서의 개수만 세서 출력하였습니다.

참고로 NULL도 카운팅하므로 이 부분은 WHERE절에 조건을 통해 제외하시는 것으 좋습니다.

 

2) SUM

결과 값을 합하여 출력하는 함수입니다.

EX) SUM, 사원의 SALARY를 합하여 출력

3) AVG

결과 값의 평균을 출력하는 함수입니다.

EX) AVG, 사원의 SALARY의 평균을 출력

4) MAX

결과 값 중 최대값을 출력하는 함수입니다.

EX) MAX, 최대 연봉을 출력

여기서 주의할 점이 있습니다.

MAX 함수를 사용하면서 위의 예에서 최대 연봉을 받는 사원을 조회하고 싶을 경우가 있을 겁니다.

그래서 MAX를 통해 최대값을 구했으니 저기서 사원 이름이 누군지 출력하면 되겠다 싶어서 아래와 같이 쿼리를 짜는 실수를 하실 수 있습니다.

하지만 위와 같이 에러가 발생합니다.

왜냐면 MAX의 경우 집계(그룹)함수이기 때문에 건건이 출력하고자 하는 일반 컬럼과는 사용할 수 없습니다.

이 부분의 경우 그룹 절과 함께 사용하면 손 쉽게 출력할 수 있습니다.

다음 포스팅에서 설명하도록 하겠습니다.

 

4) MIN

결과 값 중 최소값을 출력하는 함수입니다.

EX) MIN, 최소 연봉을 출력

MAX함수와 기능만 다를 뿐 성격은 똑같습니다.

반응형

댓글