반응형
데이터를 그룹핑 할 때 많이 사용 하는 방법이 GROUP BY와 GROUPING SETS가 있다. 때에 따라서 좀 더 특징적인 자료 그룹핑에서 앞의 두 가지 방식보다 조금은 간단한 방법이 있는데, ROLL UP 이라고 한다. 본 포스트에서는 ROLL UP이 어떤 방식으로 그룹핑을 하는지와 어떻게 사용하는 지에 대해서 알아보고자 한다.
ROLL UP
01 ROLL UP : 특화된 그룹핑
ROLL UP은 굉장히 특징적인 그룹핑 도구이기 때문에 정확히 알아야 유용하게 사용할 수 있다. 먼저 ROLL UP을 이용한 쿼리문을 어떻게 작성하는지 살펴보자.
SELECT COL1, COL2, COL3, SUM(COL4)
FROM TABLE
GROUP BY
ROLL UP (COL1, COL2, COL3)
;
작성 방식은 GROUPING SETS와 비슷하지만 결과물은 완전히 다르다. 위와 같은 결과의 쿼리문을 살펴보면 어떤 조합으로 그룹핑이 되는지 알 수 있다.
SELECT COL1, COL2, COL3, SUM(COL4)
FROM TABLE
GROUP BY
GROUPING SETS ( (COL1), (COL1, COL2), (COL1, COL2, COL3) )
;
다시 말해서 3가지 방식의 그룹핑을 한다. (COL1) , (COL1, COL2), (COL1, COL2, COL3) 정말 특별한 경우에 사용되기 때문에 잘 알고 있다면 정말 간편하게 사용가능한 그룹핑이다.
EXAMPLE
SHOP의 카테고리별, 카테고리와 제품별, 전체 판매량을 알려주세요.
SELECT CATEGORY, PRODUCT, SUM(AMOUNT)
FROM TABLE
GROUP BY
ROLL UP (CATEGORY, PRODUCT)
;
02 편하지만 순서에 유의해야 한다
ROLL UP을 사용할 때 가장 중요한 것은 순서이다. 순서에 따라서 전혀 다른 결과를 추출하기 때문이다.
EXAMPLE
ROLL UP (COL1, COL2)
ROLL UP (COL2, COL1)
;
위의 두 가지 쿼리문은 다른 결과를 보여준다. 첫 번째 쿼리의 조합은 1) COL1, 2) COL1, COL2 인 반면 두번째 쿼리의 조합은 1) COL2, 2) COL2, COL1 이다. 때문에 ROLL UP은 특수한 만큼 신경써야 할 부분이 있다는 점 알아 둬야 한다.
반응형
'ICT > SQL' 카테고리의 다른 글
SQL 문법 | 데이터 조회 및 필터 | UNION 과 UNION ALL (0) | 2021.09.14 |
---|---|
SQL 문법 | 데이터 조회 및 필터 | CUBE (0) | 2021.09.13 |
SQL 문법 | 데이터 조회 및 필터 | GROUPING SETS (0) | 2021.09.12 |
SQL 문법 | 데이터 조회 및 필터 | HAVING (0) | 2021.09.11 |
SQL 문법 | 데이터 조회 및 필터 | GROUP BY (0) | 2021.09.11 |
댓글