핵심 원리
이 자료에서는 SQL에서 데이터 분석을 위한 함수인 NTILE
함수에 대해 설명하고 있습니다. NTILE
함수는 데이터를 특정한 개수의 구간으로 나누고, 각 구간에 등급을 부여하는 데 사용됩니다. 예를 들어, 데이터를 4등분하여 각 등급을 1부터 4까지 부여할 수 있습니다. 이 함수는 특히 등급별로 데이터를 분석하거나 구간별로 집계할 때 유용합니다.
실무에서 쓰이는 이유
NTILE
함수는 데이터를 균등하게 나누어 구간별 분석을 수행할 때 유용합니다. 예를 들어, 고객 데이터를 분석하여 매출액에 따라 고객을 4등급으로 나누고 각 등급별로 마케팅 전략을 수립하는 경우, NTILE
함수를 사용하면 쉽게 등급을 나눌 수 있습니다.
실무에서 구체적으로 어떤 상황에서 사용될 수 있는지 예상 상황 예측
실무에서 NTILE
함수는 다음과 같은 상황에서 유용하게 사용될 수 있습니다:
- 매출 분석: 연간 매출 데이터를 4분위로 나누어 각 구간별로 마케팅 전략을 다르게 적용할 때.
- 고객 등급화: 고객을 구매 금액에 따라 등급을 나누어 VIP 고객, 일반 고객, 신규 고객 등으로 분류할 때.
- 직원 성과 평가: 직원들의 성과를 상위 25%, 중간 50%, 하위 25%로 나누어 보상이나 교육 프로그램을 차별화할 때.
연습 문제
NTILE
함수를 사용하여 직원들의 급여를 5등급으로 나누고, 각 등급에 속한 직원들의 이름, 직급, 급여를 출력하는 SQL 쿼리를 작성하세요.NTILE(3)
함수를 사용하여 직원들의 성과 점수를 3등급으로 나누고, 각 등급에 속한 직원들의 평균 성과 점수를 계산하세요.
연습 문제 해답
SELECT ename, job, sal, NTILE(5) OVER (ORDER BY sal DESC) AS 등급 FROM emp;
SELECT NTILE(3) OVER (ORDER BY performance_score DESC) AS 등급,
AVG(performance_score) AS 평균_성과점수
FROM emp
GROUP BY 등급;
응용 문제
- 직원의 입사 연도를 기준으로
NTILE
함수를 사용해 3등급으로 나눈 후, 각 등급별로 가장 오래 근무한 직원의 이름을 출력하는 SQL 쿼리를 작성하세요. NTILE(4)
함수를 사용하여 특정 부서의 직원들을 4등급으로 나눈 후, 각 등급별로 평균 급여를 구하세요.
응용 문제 해답
1.
SELECT ename,
NTILE(3) OVER (ORDER BY hiredate ASC) AS 등급
FROM emp
WHERE hiredate = (SELECT MIN(hiredate) FROM emp WHERE NTILE(3) OVER (ORDER BY hiredate ASC) = 등급);
SELECT NTILE(4) OVER (ORDER BY sal DESC) AS 등급, AVG(sal) AS 평균_급여 FROM emp WHERE deptno = 10 GROUP BY 등급;
전자상거래 업계에서 쓰일 수 있는 경우
전자상거래 업계에서 NTILE
함수는 다음과 같은 경우에 활용될 수 있습니다:
- 구매 빈도에 따른 고객 등급화: 고객을 구매 빈도에 따라 상위 25%, 중간 50%, 하위 25%로 나누어 각 그룹별로 차별화된 마케팅을 적용할 수 있습니다.
- 제품 등급화: 제품의 매출 순위에 따라 상위 25%, 중간 50%, 하위 25%로 나누어 재고 관리 및 프로모션 전략을 수립할 수 있습니다.