본문 바로가기
  • BLG-ZYNGIROK-모토-꿈꾸며-배우고-나누며-이루다
ICT/SQL

SQL 문법 | 데이터 조회 및 필터 | ROLL UP

by dazwischen 2021. 9. 13. 07:00
반응형

데이터를 그룹핑 할 때 많이 사용 하는 방법이 GROUP BY와 GROUPING SETS가 있다. 때에 따라서 좀 더 특징적인 자료 그룹핑에서 앞의 두 가지 방식보다 조금은 간단한 방법이 있는데, ROLL UP 이라고 한다. 본 포스트에서는 ROLL UP이 어떤 방식으로 그룹핑을 하는지와 어떻게 사용하는 지에 대해서 알아보고자 한다.

ROLL UP

SQL 문법 데이터 조회 필터 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은 특수한 만큼 신경써야 할 부분이 있다는 점 알아 둬야 한다.

반응형

댓글