SQL GROUP BY 함수 완벽 이해: 데이터 집계의 핵심 (피벗 테이블과 비교)

 

SQL GROUP BY

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(): 그룹 내 최솟값

실습 예제: 부서별 평균 급여 계산

EmployeeIDNameDepartmentSalary
101김철수영업부5000
102이영희개발부7000
103박민지영업부4500
104최현우개발부6000

SELECT
    Department,
    AVG(Salary) AS Avg_Salary
FROM
    Employees
GROUP BY
    Department;
DepartmentAvg_Salary
영업부4750.00
개발부6500.00

2. GROUP BYHAVING의 차이점: 조건 필터링

WHEREHAVING 모두 조건을 지정하는 데 사용되지만, 적용 시점이 다릅니다.

  • 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와 엑셀이나 스프레드시트의 피벗 테이블은 모두 데이터를 요약하고 집계하는 강력한 도구라는 공통점이 있습니다. 하지만 사용 환경과 작동 방식에서 명확한 차이가 존재합니다.

구분SQL GROUP BY피벗 테이블 (Pivot Table)
환경데이터베이스 (DB) 내부스프레드시트 (Excel, Google Sheets)
목적SQL 쿼리를 통해 서버/DB에서 데이터 집계 및 추출사용자 인터페이스(UI)를 통한 대화형 데이터 요약 및 분석
방식쿼리 문법을 사용하여 데이터 추출 시 집계로우(Row), 컬럼(Column), 값(Value), 필터 영역을 드래그앤드롭하여 시각적으로 집계
결과새로운 결과 테이블 (2차원)집계 기준을 행/열 형태로 교차시켜 보여주는 매트릭스 (다차원) 형태
난이도SQL 문법 이해 필요비교적 직관적이고 쉬움
성능대용량 데이터 처리 및 서버 부하에 최적화로컬 메모리에 있는 데이터를 처리, 대용량에 취약할 수 있음

핵심 차이점 요약

피벗 테이블은 행(Row), 열(Column) 기준으로 교차 집계를 시각적으로 한 번에 수행할 수 있는 반면, GROUP BY는 주로 로우(행) 기준의 집계를 쿼리 형태로 수행합니다.

💡 요약 및 결론: GROUP BY의 중요성

SQL의 GROUP BY 함수는 데이터베이스에서 구조화된 보고서와 의미 있는 통계를 뽑아내는 데 없어서는 안 될 핵심 기능입니다. 데이터베이스 관리자(DBA)나 데이터 분석가(DA)라면 반드시 숙지해야 할 기본 중의 기본입니다.

데이터를 효율적으로 요약하고 싶다면 오늘 배운 GROUP BY와 집계 함수들을 적극적으로 활용해 보세요!


#SQL #GROUPBY #데이터분석 #데이터베이스 #피벗테이블 #집계함수 #쿼리문 #DBA #DataAnalysis

댓글 쓰기

0 댓글

이 블로그 검색

태그

이미지alt태그 입력