티스토리 뷰

SQL/SQLD 이론

[SQLD] SQL 활용 : 5절 그룹 함수

개발자 김챠챠 2025. 3. 7. 18:57

5절 그룹 함수


ANSI/ISO 표준 데이터 분석 함수

집계 함수, 그룹 함수, 윈도우 함수

 

그룹 함수(Group Function)

데이터를 그룹별로 집계(합계, 평균) 하여 분석하는 함수

NULL을 빼고 집계함

결과값 없는 행은 출력 안함

GROUP BY와 함께 사용

 

ROLLUP

SELECT department, job_title, SUM(salary) AS total_salary
FROM Employee
GROUP BY ROLLUP(department, job_title);

GROUP BY로 묶인 칼럼의 소계 계산, 계층 구조로 GROUP BY의 칼럼 순서가 바뀌면 결과 값 바뀜

소계와 총합계가 모두 나옴 (NULL 값은 소계)

CUBE

SELECT department, job_title, SUM(salary) AS total_salary
FROM Employee
GROUP BY CUBE(department, job_title);

조합 가능한 모든 값에 대해 다차원 집계

GROUPING SETS

SELECT department, job_title, SUM(salary) AS total_salary
FROM Employee
GROUP BY GROUPING SETS(department, job_title);

특정 항목에 대한 소계 계산, GROUP BY의 칼럼 순서와 무관하게 개별적으로 처리함

표현식 출력값
GROUP BY ROLLUP (E1,E2) E1과 E2별 소계 / E1별 소계 / 총합계
GROUP BY CUBE (E1,E2) E1과 E2별 소계 / E1별 소계 / E2별 소계 / 총합계
GROUP BY GROUPING SETS (E1,E2) E1별 소계 / E2별 소계

※ ‘GROUP BY CUBE (E1,E2)’와 ‘GROUP BY GROUPING SETS (E1,E2,(E1,E2),())’는 동일한 결과 출력

 

GROUPING

SELECT department, job_title, 
       SUM(salary) AS total_salary,
       GROUPING(department) AS department_group,
       GROUPING(job_title) AS job_title_group
FROM Employee
GROUP BY ROLLUP(department, job_title);

그룹 함수에서 생성되는 합계를 구분해주는 함수, 소계나 합계가 계산되면 1 아니면 0 반환

 

최종 수정일 : 2025/03/07

틀린 사항이 있다면 댓글로 알려주시면 감사하겠습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함