반응형
SQL 집계함수를 살펴보기 앞서,
palette 님의 블로그 글이 너무 정리가 깔끔하게 잘 되어 있어 댓글을 남기고 가져왔다.
글을 토대로 내가 정리하고자 하는 내용은 제목에도 나와 있듯
SQLD 노랭이 교재에서 105번부터 111번까지의 문제 및 해설 정리이다.
*캡쳐한 이미지 출처는 위의 블로그 임을 밝힙니다.
SQL 집계함수 (이미지 클릭시 확대) | ||
GROUP BY | 가장 기본적이고 단순한 GROUP BY절만 사용한 결과 | |
ROLLUP | 소그룹간의 합계를 계산하는 함수 - 맨 처음 명시한 컬럼에 대해서만 소그룹 합계를 구함 - 전체 합계를 출력할 경우 ROLLUP 함수 활용 |
|
CUBE | GROUP BY절에 명시한 모든 컬럼에 대해 소그룹 합계를 계산 - ROLLUP과 달리 (맨 처음 명시한 칼럼X) 월별까지 SELECT 가능 |
|
GROUPING SETS |
특정 항목에 대한 소계를 계산하는 함수 - 소그룹 합계와 전체 합계를 보여주는 ROLLUP, CUBE와 달리 각 소그룹별 합계만 간단하게 출력 |
|
GROUPING | 집계함수 지원 함수 [직접적으로 그룹별 집계를 구하는 함수 X] - 집계가 계산된 결과에 대해서는 1의 값을 갖고 그렇지 않은 결과에 대해서는 0의 값을 가짐 - NULL값으로 표시되었던 곳에 값을 넣어줌 - 집계가 계산된 결과에 대해서만 값을 넣어주면 되기 때문에 GROUPING(컬럼명)=1인 경우에만 '모든상품ID' 또는 '모든월' 값을 부여했고 0인 경우에는 원래대로 상품ID와 월을 입력 |
- CUBE, GROUPING SETS, ROLLUP 세가지 그룹 함수 모두 일반 그룹함수로 동일한 결과 추출 가능하며,
집계된 레코드에서 집계 대상 컬럼 이외의 GROUP 대상 컬럼의 값은 NULL을 반환 - ROLLUP 함수는 함수의 인자로 주어진 컬럼의 순서에 따라 결과가 달리지므로 컬럼의 순서가 중요
- CUBE 그룹 함수는 인자로 주어진 컬럼의 결합 가능한 모든 조합에 대해 집계를 수행하기 때문에
다른 그룹 함수에 비해 시스템에 대한 부하가 큼 - 만약 A 테이블 뿐만 아니라 B 테이블의 모든 조합에 대해 총 합계까지 추출한다면 CUBE 함수
- GROUPING SETS 함수를 사용해 입력된 인수들에 대한 개별 집계를 구할 수 있음
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQLD 노랭이 1과목 개념 정리 (데이터 모델링의 이해) (0) | 2023.06.08 |
---|---|
SQLD 노랭이 112번~127번 마지막 문제까지 나오는 (윈도우함수, PL/SQL) 요약 정리 (0) | 2023.06.07 |
SQLD 노랭이 기출 단답형 예상문제 모음 (0) | 2023.06.07 |
SQLD 노랭이 2과목 요점 정리 (SQL 기본 및 활용) (0) | 2023.06.07 |
SQLD 노랭이 1과목 문제 풀이 요점 (데이터 모델링의 이해) (0) | 2023.06.05 |