728x90
반응형
SQLD 단원별 목록으로
1. 데이터 분석 개요
- AGGREGATE FUNCTION
- GROUP AGGREGATE FUNCTION이라고도 부르며, GROUP FUNCTION의 한 부분으로 분류할 수 있다.
COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함되어 있다. - GROUP FUNCTION
- 그룹 함수로는 집계 함수를 제외하고, 소그룹 간의 소계를 계산하는 ROLLUP 함수, GROUP BY 항목들 간 다차원적인 소계를 계산 할 수 있는 CUBE 함수, 특정 항목에 대한 소계를 계산하는 GROUPING SETS 함수가 있다.
- ROLLUP, CUBE, GROUPING SETS 결과에 대한 정렬이 필요한 경우는 ORDER BY 절에 정렬 칼럼을 명시해야 한다. - WINDOW FUNCTION
- 분석 함수(ANALYTIC FUNCTION)나 순위 함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터웨어하우스에서 발전한 기능이다.
2. ROLLUP 함수
- ROLLUP은 GROUP BY의 확장된 형태로 사용하기가 쉬우며 병렬로 수행이 가능하기 때 문에 매우 효과적일 뿐 아니라 시간 및
지역처럼 계층적 분류를 포함하고 있는 데이터의 집계에 적합하도록 되어 있다. - ROLLUP에 지정된 Grouping Columns의 List는 Subtotal을 생성하기 위해 사용되어지며, Grouping Columns의 수를 N이라고 했을 때 N+1 Level의 Subtotal이 생성된다.
- ROLLUP의 인수는 계층 구조이므로 인수 순서가 바뀌면 수행 결과도 바뀌게 되므로 인수의 순서에도 주의해야 한다.
1) 일반적인 GROUP BY 절 사용
2) GROUP BY 절 + ORDER BY 절 사용
..............................................................................................................................................2) ROLLUP 함수 사용
- L1 - GROUP BY 수행시 생성되는 표준 집계 (9건)
- L2 - DNAME 별 모든 JOB의 SUBTOTAL (3건)
- L3 - GRAND TOTAL (마지막 행, 1건)
3) GROUPING 함수 사용
- ROLLUP이나 CUBE에 의한 소계가 계산된 결과에는 GROUPING(EXPR) = 1 이 표시되고,
그 외의 결과에는 GROUPING(EXPR) = 0 이 표시된다.
4) GROUPING 함수 + CASE 사용
3. CUBE 함수
- CUBE는 결합 가능한 모든 값에 대하여 다차원적인 집계를 생성하게 되므로 ROLLUP에 비해 다양한 데이터를 얻는 장점이 있는 반면에, 시스템에 부하를 많이 주는 단점이 있다.
1) CUBE 함수 이용
2) UNION ALL 사용 SQL
- UNION ALL은 Set Operation 내용으로, 여러 SQL 문장을 연결하는 역할을 할 수 있다.
- CUBE 함수를 사용하면서 가장 크게 개선되는 부분은 CUBE 사용 전 SQL에서 EMP, DEPT 테이블을 네 번이나 반복 액세스하는
부분을 CUBE 사용 SQL에서는 한 번으로 줄 일 수 있는 부분이다.
4. GROUPING SETS 함수
- GROUPING SETS는 원하는 부분의 소계만 손쉽게 추출할 수 있는 장점이 있다.
- ROLLUP에서는 단지 가능한 Subtotal만을 생성하였지만, CUBE는 결합 가능한 모든 값에 대하여 다차원 집계를 생성한다.
- CUBE를 사용할 경우에는 내부적으로는 Grouping Columns의 순서를 바꾸어서 또 한 번의 Query를 추가 수행해야 한다.
뿐만 아니라 Grand Total은 양쪽의 Query 에서 모두 생성이 되므로 한 번의 Query에서는 제거되어야만 하므로
ROLLUP에 비해 시스템의 연산 대상이 많다. - GROUPING SETS를 이용해 더욱 다양한 소계 집합을 만들 수 있는데, GROUP BY SQL 문장을 여러 번 반복하지 않아도 원하는
결과를 쉽게 얻을 수 있게 되었다. - GROUPING SETS에 표시된 인수들에 대한 개별 집계를 구할 수 있으며, 이때 표시된 인 수들 간에는 계층 구조인 ROLLUP과는
달리 평등한 관계이므로 인수의 순서가 바뀌어도 결과는 같다.
- 일반 그룹함수를 이용한 SQL
- GROUPING SETS 사용 SQL
- GROUPING SETS 사용 SQL - 순서 변경
- 3개의 인수를 이용한 GROUPING SETS 이용
728x90
반응형
'자격증 > SQL개발자(SQLD)' 카테고리의 다른 글
4-7장. SQL 활용(DCL[DATA CONTROL LANGUAGE]) (5) | 2023.05.30 |
---|---|
4-6장. SQL 활용(윈도우 함수[WINDOW 함수]) (10) | 2023.05.30 |
4-4장. SQL 활용(서브쿼리) (3) | 2023.05.29 |
4-3장. SQL 활용(계층형 질의와 셀프 조인) (1) | 2023.05.29 |
4-2장. SQL 활용(집합 연산자[SET OPERATOR]) (2) | 2023.05.29 |