SQL GROUP BY 함수 완벽 이해: 데이터 집계의 핵심 (피벗 테이블과 비교)
데이터를 다루는 데 있어 필수적인 SQL 함수 중 하나인 GROUP BY에 대해 심층적으로 알아보겠습니다. 이 함수는 방대한 데이터 속에서 의미 있는 통계를 추출하는 데 핵심적인 역할을 합니다. 또한, 많은 분들이 헷갈려 하시는 엑셀/시트의 피벗 테이블(Pivot Table)과의 차이점까지 명확하게 비교해 드리겠습니다.
1. SQL GROUP BY 함수란 무엇인가요?
GROUP BY 함수는 SQL에서 집계 함수(Aggregate Function)와 함께 사용되어, 특정 컬럼(열)의 값이 같은 행들을 하나의 그룹으로 묶어주는 역할을 합니다. 쉽게 말해, 테이블의 데이터를 특정 기준에 따라 그룹화한 뒤, 각 그룹별로 합계, 평균, 개수 등의 통계(집계)를 계산할 때 사용됩니다.
핵심 사용 목적
그룹별 통계 계산: 부서별 직원 수, 제품별 판매 총액, 지역별 평균 연봉 등 그룹의 특성을 요약하는 데 사용됩니다.
데이터 요약: 원본 데이터를 단순히 나열하는 것이 아니라, 요약된 형태로 줄여서 보여줍니다.
주요 문법 구조
GROUP BY는 보통 SELECT문과 FROM문 다음에 위치하며, 반드시 집계 함수와 함께 사용해야 합니다.
SELECT
[그룹 기준 컬럼(들)],
[집계 함수]([집계 대상 컬럼])
FROM
[테이블 이름]
WHERE
[조건 (필요 시)]
GROUP BY
[그룹 기준 컬럼(들)]
HAVING
[그룹화된 결과에 대한 조건 (필요 시)]
ORDER BY
[정렬 기준 컬럼]
집계 함수 (Aggregate Functions):
COUNT(): 그룹 내 행의 개수SUM(): 그룹 내 값의 합계AVG(): 그룹 내 값의 평균MAX(): 그룹 내 최댓값MIN(): 그룹 내 최솟값
실습 예제: 부서별 평균 급여 계산
SELECT
Department,
AVG(Salary) AS Avg_Salary
FROM
Employees
GROUP BY
Department;
2. GROUP BY와 HAVING의 차이점: 조건 필터링
WHERE와 HAVING 모두 조건을 지정하는 데 사용되지만, 적용 시점이 다릅니다.
WHERE: 그룹화되기 이전, 즉 원본 데이터 레코드에 조건을 적용하여 필터링합니다. (집계 함수 사용 불가)HAVING: 그룹화된 이후, 즉 집계 결과에 조건을 적용하여 필터링합니다. (집계 함수 사용 가능)
예제: 평균 급여가 6000 이상인 부서만 조회
SELECT
Department,
AVG(Salary) AS Avg_Salary
FROM
Employees
GROUP BY
Department
HAVING
AVG(Salary) >= 6000;
3. GROUP BY vs. 피벗 테이블 (Pivot Table) 비교
SQL의 GROUP BY와 엑셀이나 스프레드시트의 피벗 테이블은 모두 데이터를 요약하고 집계하는 강력한 도구라는 공통점이 있습니다. 하지만 사용 환경과 작동 방식에서 명확한 차이가 존재합니다.
핵심 차이점 요약
💡 요약 및 결론: GROUP BY의 중요성
SQL의 GROUP BY 함수는 데이터베이스에서 구조화된 보고서와 의미 있는 통계를 뽑아내는 데 없어서는 안 될 핵심 기능입니다. 데이터베이스 관리자(DBA)나 데이터 분석가(DA)라면 반드시 숙지해야 할 기본 중의 기본입니다.
데이터를 효율적으로 요약하고 싶다면 오늘 배운 GROUP BY와 집계 함수들을 적극적으로 활용해 보세요!
#SQL #GROUPBY #데이터분석 #데이터베이스 #피벗테이블 #집계함수 #쿼리문 #DBA #DataAnalysis
0 댓글