[78일차] 그룹함수 ROLLUP

저요·2022년 12월 8일

2022 100th day challenge

목록 보기
77/97

ROLLUP란?

데이터 분석함수 중 하나로 세분화해서 그룹함수에 속하는 함수이다. ROUND를 이용하면 그룹별로 주안소계나 전체 소계를 찾아낼 수가 있어, 통계에서 많이 사용한다. 이 외에 그룹함수에는 CUBE, GROUPING SETS이 존재하는데 내일과 모레 그 주제로 글을 쓰려고 한다.

어떨 때 사용하는가?

날짜별로 소계를 구할 때, 지점별로 소계를 구할 때 등 어떤 그룹을 기준으로 소계를 내는 통계에서 많이 사용하는 쿼리이다.

사용예시

하나 이상의 컬럼을 기준으로 그룹화하여 소계를 내기 때문에 ROLLUP과 같은 그룹함수는 GROUP BY 절이 필수로 존재해야한다.

SELECT COLUM1, COLUM2, COUNT(*)
FROM TABLE
GROUP BY COLUM1, COLUM2

--ROLLUP 사용
SELECT COLUM1, COLUM2, COUNT(*)
FROM TAHBEL
GROUP BY ROLLUP(COLUM1, COLUM2);

위와 같이 ROLLUP안에 적은 컬럼들의 기준으로 그룹핑하여 소계를 나타낼 수 있다. 이 때 입력한 컬럼의 순서에 따라서 결과가 달라지니 주의하도록 하자.

SELECT COLUM1, COLUM2, COLUM3, COUNT(*)
FROM TABLE
GROUP BY COLUM1, COLUM2

--ROLLUP 사용
SELECT COLUM1, COLUM2, COUNT(*)
FROM TAHBEL
GROUP BY ROLLUP((COLUM1, COLUM2), COLUM3);
--COLUM3기준으로만 소계가 생긴다.

참고

https://autumn-irene.tistory.com/67
https://youtu.be/cy9Xiim1X94

profile
웹개발

0개의 댓글