데이터 분석함수 중 하나로 세분화해서 그룹함수에 속하는 함수이다. 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