SQL의 GROUP BY와 집계 함수를 활용한 데이터 그룹화 및 분석 방법을 정리한다.
그룹화 및 집계 함수 활용
GROUP BY를 통해 기준별로 데이터를 분류하고 집계 함수를 적용하여 통계 정보를 산출한다.
-- 부서별 통계 산출 쿼리
SELECT dept_name,
AVG(salary) AS avg_sal,
COUNT(*) AS emp_count
FROM employees
GROUP BY dept_name
HAVING AVG(salary) >= 3000 -- 집계 결과 필터링
ORDER BY avg_sal DESC;
부서별 통계 산출 및 조건부 필터링이 가능하다.
WHERE와 HAVING의 역할 구분이 중요하다.
WHERE와 HAVING의 차이점
- WHERE: 데이터 그룹화 수행 전 개별 행에 조건을 적용한다.
- HAVING: 그룹화 및 집계 완료 후 결과 값에 조건을 적용한다.
개별 데이터 선별 시에는 WHERE를, 집계 결과 기반 필터링 시에는 HAVING을 사용한다.
COUNT, SUM, AVG 등의 집계 함수와 GROUP BY의 조합은 대규모 데이터 분석에 효과적인 것 같다.