AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

SQLD/2과목 : SQL 기본 및 활용

2.12 그룹함수

qordnswnd123 2025. 7. 3. 11:35

🟦 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