본문 바로가기

DB

[SQLD] 집계함수 (SUM, AVG, COUNT, MAX, MIN)

반응형

다중행 함수(Multi-row Function) 

1. 여러 개의 행의 값들을 같이 연산하는 함수다. 

2. 예시 

SUM(<컬럼명>) : 총합

AVG(<컬럼명>) : 평균

COUNT(<컬럼명>) : 총 개수

MAX(<컬럼명>) : 최댓값

MIN(<컬럼명>) : 최솟값

 

예제

1. 집계함수는 다른 칼럼들과 섞어서 사용할 수 없다. 

SELECT COUNT(EMPNO)
FROM EMP;

SELECT COUNT(COMM)
FROM EMP;

SELECT  COUNT(*), COUNT(COMM)
FROM EMP;

 

2. 칼럼의 값에 NULL이 있으면 제외하고 계산한다. 

SELECT SUM(COMM) FROM EMP;

결과 

SELECT SUM(COMM) FROM EMP;
NULL값을 제외하고 집계함

 

※예외가 있다. COUNT(*)은 NULL 값도 포함해서 셈한다. 

SELECT COUNT(*)
FROM EMP;

 

COUNT(DISTINCT칼럼)

1. DISTINCT 옵션은 중복값들을 모두 제거하여 한번만 출력될 수 있도록 도와준다. 칼럼 값들이 몇 종류가 있는지 쉽게 알 수 있다. 

 

2. 예제 - 사원테이블에서 사원들의 직무가 총 몇 개인지 중복 없이 셈하라. 

SELECT COUNT(DISTINCT JOB)
FROM EMP;

 

 

집계함수 예제

-- 급여가 1500 이상인 사원들의 총급여 
SELECT SUM(SAL)
FROM EMP
WHERE SAL>=1500;

-- 전 사원의 평균 급여 
SELECT AVG(SAL)
FROM EMP;

-- 20번 부서에서 근무하는 사원들의 급여 평균을 구하라 
SELECT AVG(SAL)
FROM EMP
WHERE DEPTNO=20;

-- 사원들의 급여 최소값, 최대값
SELECT MAX(SAL), MIN(SAL)
FROM EMP;

-- 현재 시간을 기준으로 직무가 SALESMAN인 사원들의 평균 근무일수?
SELECT AVG(SYSDATE-HIREDATE)
FROM EMP
WHERE JOB='SALESMAN';

 

반응형