SQL GROUPING SETS 완벽 정리|ROLLUP, CUBE와 차이점부터 SQLD 시험 대비까지

요약

SQL GROUPING SETS는 여러 GROUP BY 결과를 한 번에 조회할 수 있는 고급 집계 기능입니다. 복잡한 집계 SQL을 간결하게 작성할 수 있으며 SQLD 시험에서도 ROLLUP, CUBE와 함께 자주 출제되는 핵심 개념입니다. 이번 글에서는 SQL GROUPING SETS의 개념부터 사용법, ROLLUP 및 CUBE와의 차이점까지 자세히 알아보겠습니다.

SQL GROUPING SETS란?

SQL GROUPING SETS는 여러 개의 GROUP BY 결과를 하나의 SQL 문으로 조회할 수 있는 기능입니다.

일반적으로 부서별 집계와 직무별 집계를 모두 조회하려면 각각 SQL을 작성한 후 UNION ALL로 합쳐야 합니다.

예를 들어 다음과 같은 SQL이 있다고 가정해보겠습니다.

SELECT DEPTNO,
       COUNT(*)
FROM EMP
GROUP BY DEPTNO

UNION ALL

SELECT JOB,
       COUNT(*)
FROM EMP
GROUP BY JOB;

이처럼 여러 집계 결과를 하나로 합치는 작업을 SQL GROUPING SETS가 더욱 효율적으로 처리해줍니다.

SQL GROUPING SETS는 SQLD 시험에서 고급 집계 함수 영역의 핵심 개념입니다. 더 많은 정보를 확인하고 SQL GROUPING SETS 개념을 익혀보세요.

SQL GROUPING SETS가 필요한 이유

실무에서는 하나의 기준만 집계하는 경우보다 여러 기준으로 집계하는 경우가 많습니다.

예를 들어 다음과 같은 분석이 필요할 수 있습니다.

  • 부서별 직원 수
  • 직무별 직원 수
  • 부서와 직무별 직원 수

일반적인 GROUP BY만 사용하면 여러 SQL 문을 작성해야 합니다.

하지만 SQL GROUPING SETS를 사용하면 한 번에 처리할 수 있습니다.

데이터 분석 업무에서는 보고서 생성 시 매우 유용하게 활용됩니다. 더 많은 정보를 확인하고 SQL 집계 기능을 학습해보세요.

SQL GROUPING SETS 기본 문법

기본 문법은 다음과 같습니다.

SELECT 컬럼명,
       집계함수
FROM 테이블명
GROUP BY GROUPING SETS (
    그룹1,
    그룹2
);

예제

SELECT DEPTNO,
       JOB,
       COUNT(*)
FROM EMP
GROUP BY GROUPING SETS (
    (DEPTNO),
    (JOB)
);

위 SQL은

  • 부서별 집계
  • 직무별 집계

를 한 번에 조회합니다.

SQL GROUPING SETS는 여러 GROUP BY를 UNION ALL처럼 수행한다고 생각하면 이해하기 쉽습니다. 더 많은 정보를 확인하고 SQL GROUPING SETS 문법을 익혀보세요.

SQL GROUPING SETS 실행 결과

다음 EMP 데이터가 있다고 가정하겠습니다.

이름부서번호직무
SMITH20CLERK
ALLEN30SALESMAN
WARD30SALESMAN

실행 결과 예시

부서번호직무인원수
20NULL1
30NULL2
NULLCLERK1
NULLSALESMAN2

GROUPING SETS는 지정한 그룹별 결과를 각각 생성합니다.

실무 보고서 작성 시 매우 유용합니다. 더 많은 정보를 확인하고 SQL 분석 능력을 향상시켜보세요.

GROUPING SETS와 UNION ALL 비교

다음 SQL을 살펴보겠습니다.

UNION ALL 방식

SELECT DEPTNO,
       COUNT(*)
FROM EMP
GROUP BY DEPTNO

UNION ALL

SELECT JOB,
       COUNT(*)
FROM EMP
GROUP BY JOB;

GROUPING SETS 방식

SELECT DEPTNO,
       JOB,
       COUNT(*)
FROM EMP
GROUP BY GROUPING SETS(
    (DEPTNO),
    (JOB)
);

결과는 거의 동일합니다.

하지만 SQL GROUPING SETS가 훨씬 간결하고 유지보수가 쉽습니다.

더 많은 정보를 확인하고 SQL 최적화 방법을 학습해보세요.

SQL GROUPING SETS 여러 그룹 사용하기

여러 그룹을 동시에 지정할 수도 있습니다.

SELECT DEPTNO,
       JOB,
       COUNT(*)
FROM EMP
GROUP BY GROUPING SETS(
    (DEPTNO),
    (JOB),
    (DEPTNO, JOB)
);

위 SQL은

  • 부서별 집계
  • 직무별 집계
  • 부서+직무별 집계

를 모두 조회합니다.

SQLD 시험에서도 자주 등장하는 형태입니다. 더 많은 정보를 확인하고 SQL GROUPING SETS 활용법을 익혀보세요.

SQL ROLLUP과 차이점

SQLD 시험에서 가장 자주 비교하는 내용입니다.

ROLLUP 예시

SELECT DEPTNO,
       JOB,
       COUNT(*)
FROM EMP
GROUP BY ROLLUP(DEPTNO, JOB);

ROLLUP은 계층적으로 소계를 생성합니다.

예를 들어

  • 부서+직무
  • 부서 소계
  • 전체 합계

순으로 결과를 생성합니다.

반면 SQL GROUPING SETS는 원하는 그룹만 직접 지정합니다.

더 많은 정보를 확인하고 SQL 집계 함수 차이를 이해해보세요.

SQL CUBE와 차이점

CUBE는 가능한 모든 조합을 생성합니다.

SELECT DEPTNO,
       JOB,
       COUNT(*)
FROM EMP
GROUP BY CUBE(DEPTNO, JOB);

생성 결과

  • DEPTNO
  • JOB
  • DEPTNO + JOB
  • 전체 합계

모든 조합을 자동으로 생성합니다.

반면 SQL GROUPING SETS는 필요한 그룹만 선택적으로 생성합니다.

더 많은 정보를 확인하고 SQL CUBE 개념도 함께 학습해보세요.

GROUPING SETS, ROLLUP, CUBE 비교

SQLD 시험 필수 암기 내용입니다.

구분GROUPING SETSROLLUPCUBE
원하는 그룹 선택가능불가능불가능
소계 생성선택적자동자동
전체 합계선택 가능포함포함
모든 조합 생성불가능불가능가능
SQLD 출제 빈도매우 높음매우 높음매우 높음

실제 시험에서는 결과 행 개수를 묻는 문제가 자주 출제됩니다.

더 많은 정보를 확인하고 SQLD 핵심 개념을 정리해보세요.

SQLD 시험에서 자주 출제되는 유형

다음 문제 유형이 자주 등장합니다.

실행 결과 예측

GROUP BY GROUPING SETS(
    (DEPTNO),
    (JOB)
)

행 개수 계산

GROUPING SETS에 포함된 그룹 수를 계산하여 결과 건수를 예측하는 문제입니다.

ROLLUP, CUBE 비교

실행 결과가 동일한 SQL을 찾는 문제가 자주 출제됩니다.

실제 SQLD 시험에서는 단순 암기보다 실행 결과를 이해하는 것이 중요합니다.

더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.

실무에서 GROUPING SETS 활용 사례

SQL GROUPING SETS는 다음과 같은 업무에서 활용됩니다.

업무활용 사례
영업 분석지역별·상품별 매출 집계
인사 분석부서별·직급별 인원 현황
생산 관리공정별·라인별 생산량 분석
데이터 분석다차원 집계 보고서 생성

특히 데이터 분석가와 BI 개발자가 자주 사용하는 기능입니다.

더 많은 정보를 확인하고 SQL 실무 활용 능력을 향상시켜보세요.

SQLD 시험에서 GROUPING SETS가 중요한 이유

SQLD 시험에서는 고급 집계 함수 문제가 꾸준히 출제됩니다.

특히 다음 개념은 반드시 이해해야 합니다.

출제 포인트중요도
GROUPING SETS 개념매우 높음
ROLLUP 비교매우 높음
CUBE 비교매우 높음
실행 결과 예측매우 높음
결과 건수 계산매우 높음

SQLD 고득점을 목표로 한다면 반드시 학습해야 하는 영역입니다.

더 많은 정보를 확인하고 SQLD 핵심 개념을 정리해보세요.

자주 묻는 질문(FAQ)

SQL GROUPING SETS는 SQLD 시험에 자주 나오나요?

네. ROLLUP, CUBE와 함께 고급 집계 함수 영역의 핵심 출제 주제입니다. 더 많은 정보를 확인하고 SQLD 기출문제를 분석해보세요.

GROUPING SETS와 UNION ALL은 같은 건가요?

결과는 비슷할 수 있지만 GROUPING SETS가 더 효율적이고 유지보수가 쉽습니다. 더 많은 정보를 확인하고 SQL 최적화 방법을 알아보세요.

GROUPING SETS와 ROLLUP 중 무엇이 더 많이 사용되나요?

필요한 집계 형태에 따라 다르지만 실무에서는 원하는 그룹만 선택 가능한 GROUPING SETS도 자주 사용됩니다. 더 많은 정보를 확인하고 SQL 집계 함수 활용법을 익혀보세요.

마무리

SQL GROUPING SETS는 여러 GROUP BY 결과를 한 번에 조회할 수 있는 강력한 집계 기능입니다. 특히 ROLLUP, CUBE와의 차이를 이해하면 SQLD 시험 문제를 훨씬 쉽게 해결할 수 있습니다. 데이터 분석과 보고서 작성에서도 매우 유용한 기능이므로 반드시 직접 예제를 실행해보며 익히는 것을 추천합니다. 더 많은 정보를 확인하고 다음 단계인 SQL ROLLUP 사용법도 함께 학습해보세요.

관련 글 보기