SQLD 시험 내용
(a) 데이터 모델링의 이해 (출제 비중 20% : 10문제, 20점)
- 데이터 모델링의 이해 : 데이터모델의 이해 / 엔터티 / 속성 / 관계 / 식별자
- 데이터 모델과 성능 : 정규화와 성능 / 반정규화와 성능 / 대용량 데이터에 따른 성능 / DB 구조와 성능 / 분산 DB 데이터에 따른 성능
(b) SQL 기본 및 활용 (출제 비중 80% : 40문제, 80점)
- SQL 기본 : 정보 요구 사항 / DDL / DML / TCL / WHERE / FUNCTION / GROUP BY, HAVING / ORDER BY / JOIN
- SQL 활용 : 표준 조인 / 집합 연산자 / 계층형 질의 / 서브쿼리 / 그룹함수 / 윈도우 함수 / DCL / 절차형 SQL
- SQL 최적화 기본 원리 : 옵티마이저와 실행 계획 / 인덱스 기본 / 조인 수행 원리
1. 그룹 함수
- 다양한 레벨의 집계를 구현할 수 있도록 GROUP BY 절의 확장 기능 제공- GROUP BY 절에 ROLLUP / CUBE / GROUPING SETS 중 하나를 기술하곡, 괄호 안에 집계 기준이 될 컬럼 / 표현식을 콤마로 구분하여 기술
SELECT a, b, c
FROM table
WHERE 조건
GROUP BY ROLLUP/CUBE/GROUPING SETS (컬럼, 컬럼, 컬럼, ...)
2. 그룹 함수 종류
GROUPING SETS
: 괄호 안에 명시된 집계 컬럼들 별로 여러 개의 개별적인 집계 그룹을 생성
GROUP BY GROUPING SETS ( (a.deptno, a.job), a.job). )
--첫 번재 집계 그룹 : 집계 칼럼 (deptno, job)
--두 번쨰 집계 그룹 : 집계 칼럼 (job)
/*GROUPING SETS와 동일한 SQL = UNION ALL */
SELECT a.deptno, a.job, sum(a.sal) as SUM_SAL
FROM emp a
GROUP BY a.deptno, a.job
UNION ALL
SELECT a.deptno, a.job, sum(a.sal) as SUM_SAL
FROM emp a
GROUP BY a.job
deptno | job | |
1 | a | 첫 번째 집계 그룹 |
1 | b | 첫 번째 집계 그룹 |
2 | c | 첫 번째 집계 그룹 |
2 | a | 첫 번째 집계 그룹 |
a | 두 번째 집계 그룹 | |
b | 두 번째 집계 그룹 | |
c | 두 번째 집계 그룹 |
ROLLUP : 괄호 안의 집계 칼럼들을 우에서 좌로 하나씩 줄여가며, 점진적으로 상위 집계 그룹을 생서어
GROUP BY ROLL UP (a.deptno, a.job)
--첫 번째 집계 그룹 : deptno, job
--두 번째 집계 그룹 : deptno
--세 번째 집계 그룹 : ()
/*ROLL UP 기능과 동일한 SQL */
--1) GROUPING SETS
SELECT a.deptno, a.job, SUM(a.sal) AS SUM_SAL
FROM emp a
GORUP BY GROUPING SETS ( (a.deptno, a.job), a.deptno, ())
--2) UNION ALL
SELECT a.deptno, a.job, SUM(a.sal) AS SUM_SAL
FROM emp a
GROUP BY a.deptno, a.job
UNION ALL
SELECT a.deptno, a.job, SUM(a.sal) AS SUM_SAL
FROM emp a
GROUP BY a.job
UNION ALL
SELECT a.deptno, a.job, SUM(a.sal) AS SUM_SAL
FROM emp a
GROUP BY ()
deptno | job | |
1 | a | 첫 번째 집계 그룹 |
1 | b | 첫 번째 집계 그룹 |
1 | 두 번째 집계 그룹 | |
2 | a | 첫 번째 집계 그룹 |
2 | b | 첫 번째 집계 그룹 |
2 | c | 첫 번째 집계 그룹 |
2 | 두 번째 집계 그룹 | |
세 번째 집계 그룹 |
CUBE 괄호 안의 집계 칼럼들로 만들어지는 모든 경우의 수를 집계 기준으로 하여 집계 그룹 생성
GROUP BY CUBE(a.deptno, a.job)
--첫 번쨰 집계 그룹 : deptno, job
--두 번쨰 집계 그룹 : deptno
--세 번쨰 집계 그룹 : job
--네 번쨰 집계 그룹 : ()
--총 수 : 2^n. (n은 CUBE안의 컬럼 수)
'# Work > Data' 카테고리의 다른 글
[SQLD] GROUP BY절 : SQL 기본 및 활용 / SQL 기본 (0) | 2023.02.21 |
---|---|
[SQLD] SQL 기본 구조 : SQL 기본 및 활용 / SQL 기본 (0) | 2023.02.21 |
[SQLD] 계층형 질의 : SQL 기본 및 활용 / SQL 활용 (0) | 2023.02.20 |
[SQLD] 윈도우 함수 : SQL 기본 및 활용 / SQL 활용 (0) | 2023.02.20 |
[SQLD] SQLD 데이터 자격증 준비 (0) | 2023.02.18 |