핵심 원리
AVG 함수는 SQL에서 사용되는 그룹 함수 중 하나로, 특정 컬럼의 평균값을 계산하여 반환합니다. 이 함수는 지정된 컬럼에서 NULL 값을 무시하고, 나머지 숫자형 값들에 대해서만 평균을 구합니다.
실무에서 쓰이는 이유
데이터베이스에서 특정 집합의 평균값을 구하는 것은 데이터를 분석하고 이해하는 데 필수적입니다. 예를 들어, 사원의 평균 급여를 계산하거나 제품의 평균 가격을 분석할 때 AVG 함수를 사용합니다. 이는 비즈니스 의사결정을 내릴 때 중요한 통계적 정보를 제공합니다.
실무에서 구체적으로 어떤 상황에서 사용되는지 예상 상황 예측
- 사원 관리 시스템: 회사의 인사 부서에서 사원들의 평균 급여를 분석하여 급여 인상 정책을 수립할 때.
- 판매 데이터 분석: 제품 판매 데이터에서 평균 판매 가격을 분석하여 할인 또는 가격 조정의 근거 자료로 사용할 때.
- 학교 성적 관리 시스템: 학생들의 과목별 평균 점수를 계산하여 성적 평가 및 학사 관리에 활용할 때.
연습 문제
- 다음 SQL 쿼리를 작성하여 특정 부서의 사원들의 평균 급여를 구하시오.
SELECT AVG(sal)
FROM emp
WHERE deptno = 10;
- 모든 사원의 커미션 평균을 구하되, 커미션이 NULL인 경우 0으로 간주하여 계산하시오.
SELECT AVG(NVL(comm, 0))
FROM emp;
연습문제 해답
- 특정 부서의 평균 급여 계산
SELECT AVG(sal)
FROM emp
WHERE deptno = 10;
- 이 쿼리는 부서 번호가 10인 사원들의 평균 급여를 반환합니다.
- NULL을 0으로 간주한 커미션 평균 계산
SELECT AVG(NVL(comm, 0))
FROM emp;
- 이 쿼리는 NULL 커미션을 0으로 처리하여 모든 사원의 커미션 평균을 계산합니다.
응용 문제
- 부서별 사원들의 평균 급여를 구하고, 급여가 높은 순서대로 정렬하시오.
SELECT deptno, AVG(sal) AS avg_sal
FROM emp
GROUP BY deptno
ORDER BY avg_sal DESC;
- 모든 사원의 평균 커미션을 구하되, 커미션이 NULL인 경우 0으로 간주하고, 커미션의 합계가 1000 이상인 부서의 평균 커미션만 출력하시오.
SELECT deptno, AVG(NVL(comm, 0)) AS avg_comm
FROM emp
GROUP BY deptno
HAVING SUM(NVL(comm, 0)) >= 1000;
응용문제 해답
- 부서별 평균 급여 구하기 및 정렬
SELECT deptno, AVG(sal) AS avg_sal
FROM emp
GROUP BY deptno
ORDER BY avg_sal DESC;
- 이 쿼리는 부서별로 평균 급여를 계산한 후, 평균 급여가 높은 부서부터 낮은 부서 순으로 결과를 정렬합니다.
- 커미션 합계가 1000 이상인 부서의 평균 커미션 출력
SELECT deptno, AVG(NVL(comm, 0)) AS avg_comm
FROM emp
GROUP BY deptno
HAVING SUM(NVL(comm, 0)) >= 1000;
- 이 쿼리는 부서별로 커미션 평균을 구하고, 커미션 합계가 1000 이상인 부서의 평균 커미션을 출력합니다.