반응형
WITH ROLLUP은 결과 집합에 대한 부분 합계 및 총합계를 생성하는 데 사용되는 기능입니다. GROUP BY 절과 함께 주로 사용되지만 다른 집계 함수와 함께 사용될 수도 있습니다. WITH ROLLUP을 사용하면 원본 데이터에 대한 하위 합계와 최종 합계를 표시할 수 있으며, 이를 통해 데이터 요약 및 분석이 더욱 용이해집니다.
사용법
SELECT column1, column2, ..., 집계함수 AS alias
FROM table
GROUP BY column1, column2, ..., WITH ROLLUP;
검색할 열을 나열하고 필요한 경우 집계 함수를 사용하여 계산된 결과를 가져옵니다. GROUP BY 구문을 통해 결과를 그룹화할 열을 나열합니다. 이 열을 기준으로 데이터가 그룹화됩니다.
마지막으로 WITH ROLLUP으로 하위 합계와 총합계를 생성합니다.
예제 쿼리
select year, month,
CASE
WHEN product_category IS NULL AND month is null THEN '전체 합계'
WHEN product_category IS NULL THEN '월 합계'
ELSE product_category
END AS product_category,
total_sales
from(
SELECT
YEAR(sale_date) AS year,
MONTH(sale_date) AS month,
product_category,
SUM(sales_amount) AS total_sales
FROM
sales
GROUP BY
year, month, product_category WITH ROLLUP
HAVING
(YEAR IS NOT NULL OR MONTH IS NOT NULL OR product_category IS NOT NULL)
)a
위의 예제 쿼리는 연도와 월별로 그룹화하고, WITH ROLLUP을 사용하여 부분 합계 및 총합계를 표시합니다. CASE 문을 사용하여 제품 카테고리에 월 합계, 전체 합계를 나타냈습니다.
반응형
'개발이야기 > MySQL' 카테고리의 다른 글
[MySQL] 문자열 합치기/붙이기/연결하기 (CONCAT, CONCAT_WS 사용법&예제) (0) | 2023.09.11 |
---|---|
[MySQL] LIMIT, OFFSET 사용해서 데이터 검색하고 제한하기 (0) | 2023.09.11 |
[MySQL] sql_mode=only_full_group_by 에러 간단히 해결하기 (sql_mode 변경하기) (0) | 2023.09.06 |
[MySQL] JOIN(조인) 설명과 사용법 예제 (INNER, LEFT, RIGHT) (0) | 2023.09.06 |
[MySQL] 위도 경도 값으로 거리 계산하기 (Haversine 공식) (0) | 2023.08.29 |
댓글