
그룹함수는 데이터를 그룹으로 묶고, 이 그룹을 기준으로 통계 값을 계산하는 데 사용
주로 GROUP BY 구문과 함께 쓰이며, SUM(), AVG(), COUNT(), MAX(), MIN() 등의 집계 함수와 결합되어 소계나 총계를 구할 수 있는 방법
GROUP BY는 단일 그룹 수준에서만 결과를 제공하기 때문에, 보다 복합적인 소계/총계를 구하고자 할 때는 ROLLUP, CUBE, GROUPING SETS 같은 고급 그룹 함수가 필요
기본 GROUP BY
단일 그룹화 기준. 예: 상품ID, 기준월 각각에 대해 매출 합계를 보여줌.
ROLLUP
계층 구조 기반 소계 제공. 예: 상품별 소계, 전체 총계까지.
CUBE
가능한 모든 조합에 대해 소계를 생성. 즉, 다차원 집계.
GROUPING SETS
사용자가 지정한 특정 조합에 대해서만 결과를 보여줌.
테이블명: 월별음료매출
음료명 판매월 매출액
아메리카노 2024.01 1200
아메리카노 2024.02 1300
아메리카노 2024.03 1500
라떼 2024.01 1000
라떼 2024.02 1200
라떼 2024.03 1300
기본 GROUP BY
SELECT 음료명, 판매월, SUM(매출액) AS 매출합계
FROM 월별음료매출
GROUP BY 음료명, 판매월;
ROLLUP
SELECT 음료명, 판매월, SUM(매출액) AS 매출합계
FROM 월별음료매출
GROUP BY ROLLUP(음료명, 판매월);
CUBE
SELECT 음료명, 판매월, SUM(매출액) AS 매출합계
FROM 월별음료매출
GROUP BY CUBE(음료명, 판매월);
GROUPING SETS
SELECT 음료명, 판매월, SUM(매출액) AS 매출합계
FROM 월별음료매출
GROUP BY GROUPING SETS ((음료명), (판매월));