🟦 2.12 그룹 함수(Group Function)
그룹별로 합계, 평균, 개수 등을 계산해주는 함수
🔹 자주 쓰는 함수들

예)
SELECT 부서, SUM(급여)
FROM 직원
GROUP BY 부서;
👉 부서별 급여 총합을 보여주는 쿼리!
🟦 2. ROLLUP이란?
그룹별 합계뿐 아니라 중간합계와 전체합계까지 한꺼번에 보여줌
🔹 예시 상황
예를 들어 마트 매출 데이터가 아래처럼 있다면:

🔹 ROLLUP 쿼리
SELECT 지점, 상품, SUM(매출)
FROM 매출
GROUP BY ROLLUP(지점, 상품);
🔹 결과
🟦 3. CUBE란?
가능한 모든 조합으로 그룹화해서 모든 방향의 총합을 계산
SELECT 지점, 상품, SUM(매출)
FROM 매출
GROUP BY CUBE(지점, 상품);
🔹 결과는?
🟦 4. GROUPING SETS란?
원하는 조합만 골라서 그룹화할 수 있는 방법
SELECT 지점, 상품, SUM(매출)
FROM 매출
GROUP BY GROUPING SETS (
(지점, 상품),
(지점),
()
);
✔️ 위 쿼리는 ROLLUP과 비슷한 결과를 냄
✔️ 필요한 조합만 선택 가능 → 유연함 최고!
🟦 5. GROUPING 함수란?
그룹이 총계인지 아닌지 판별해주는 함수
🔹 문제 상황
ROLLUP 결과에 NULL이 많음
근데 어떤 NULL이 “진짜 NULL”이고
어떤 NULL이 “총계”를 뜻하는지 구분이 안 됨 ❗
🔹 해결방법
SELECT
CASE WHEN GROUPING(지점) = 1 THEN '전체' ELSE 지점 END AS 지점명,
상품,
SUM(매출)
FROM 매출
GROUP BY ROLLUP(지점, 상품);

🟨 최종 정리 표

🧠 시험 대비 포인트 요약
- ROLLUP vs CUBE 차이 반드시 구별!
- GROUPING 함수 + CASE로 “전체” 표시 꼭 연습
- GROUPING SETS → ROLLUP/CUBE로 바꿔보기 실습 추천
- SQL 실습 시 NULL 값 구분 연습
- 시험에선 “출력 결과” 해석 문제가 자주 나옴!
'SQLD > 2과목 : SQL 기본 및 활용' 카테고리의 다른 글
2.14 Top-N 쿼리 (0) | 2025.07.04 |
---|---|
2.13 윈도우 함수 (0) | 2025.07.03 |
2.11 중첩 서브쿼리 (1) | 2025.07.03 |
2.10 서브쿼리 (0) | 2025.07.03 |
2.9 복합 쿼리 예제 2 (2) | 2025.07.03 |