GROUP BY
는 SQL에서 가장 자주 쓰이면서도,
어떻게 묶느냐에 따라 분석 결과가 달라지는 구문입니다.
이번 글에서는 실무에서 자주 사용되는 GROUP BY 집계 방식 3가지를 소개합니다.
❶ 단일 필드 기준 – 기본 집계
예: 지점별 매출 합계
SELECT store_id, SUM(sales_amount) AS total_sales
FROM sales
GROUP BY store_id;
▶ 단순하고 기초적인 집계 방식입니다.
❷ 다중 필드 기준 – 교차 분석용
예: 지점 + 상품 카테고리별 매출
SELECT store_id, category, SUM(sales_amount) AS total_sales
FROM sales
GROUP BY store_id, category;
▶ 다중 기준으로 교차된 분석이 가능하며,
▶ 피벗 형태로 변환하기 위한 전처리로도 자주 사용됩니다.
❸ 사용자 정의 기준 – 조건 분기 후 그룹화
CASE WHEN을 활용해 직접 그룹을 나누는 방식입니다.
SELECT
CASE
WHEN sales_amount >= 100000 THEN '고매출'
WHEN sales_amount >= 50000 THEN '중매출'
ELSE '저매출'
END AS 매출등급,
COUNT(*) AS 건수
FROM sales
GROUP BY
CASE
WHEN sales_amount >= 100000 THEN '고매출'
WHEN sales_amount >= 50000 THEN '중매출'
ELSE '저매출'
END;
▶ 분석 목적에 따라 기준을 새로 설계하는 방식입니다.
▶ 정형화된 컬럼 외에 비즈니스 룰 기반 그룹 설정이 가능합니다.
✅ 정리 – 집계 기준별로 분석 형태를 변경 할 수 있습니다.
- ✔ 단순 집계 → store_id, 날짜 등 기본 필드
- ✔ 교차 분석 → 복합 필드 조합
- ✔ 전략 분석 → CASE WHEN 등 사용자 정의 기준
같은 테이블이라도 GROUP BY 기준이 바뀌면 해석이 완전히 달라 질 수 있습니다.
‘왜 묶는가’를 먼저 고민하는 것이 SQL Group by 분석활용의 첫 단추가 되지 않을까 생각해봅니다.
'IT > SQL' 카테고리의 다른 글
🔎 서브쿼리 없이 조건만 추출? – EXISTS 패턴 실무 활용법 (0) | 2025.05.14 |
---|---|
📄 WITH 절은 서브쿼리보다 더 강력하다 (0) | 2025.05.13 |
🧩 CASE WHEN이 필터링에도 쓰인다고요? (0) | 2025.05.11 |
🔄 LEFT JOIN인데 데이터가 빠져요? – JOIN 실수 CASE (0) | 2025.05.11 |
❓ WHERE 절이 있는데 조건이 왜 안 먹히나요? (0) | 2025.05.11 |