요약
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 데이터가 있다고 가정하겠습니다.
| 이름 | 부서번호 | 직무 |
|---|---|---|
| SMITH | 20 | CLERK |
| ALLEN | 30 | SALESMAN |
| WARD | 30 | SALESMAN |
실행 결과 예시
| 부서번호 | 직무 | 인원수 |
|---|---|---|
| 20 | NULL | 1 |
| 30 | NULL | 2 |
| NULL | CLERK | 1 |
| NULL | SALESMAN | 2 |
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 SETS | ROLLUP | CUBE |
|---|---|---|---|
| 원하는 그룹 선택 | 가능 | 불가능 | 불가능 |
| 소계 생성 | 선택적 | 자동 | 자동 |
| 전체 합계 | 선택 가능 | 포함 | 포함 |
| 모든 조합 생성 | 불가능 | 불가능 | 가능 |
| 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 사용법도 함께 학습해보세요.
