물론 속도도 UNION을 사용할 때 보다 좋다~ 내 느낌인가?... ^^
암튼. 사용 방법은 의외로 간단하다.
예를 들면.
품명 일자 수량
A 20060523 10
A 20060524 20
B 20060522 10
B 20060523 30
B 20060524 40
이런 데이터가 있을때 간혹... 아니 자주 중간 소계와 전체합계를 보고 싶다는 요청을 받을 것이다...
그때... ROLLUP을 사용하면 된다...
그럼 아주 이쁘게 소계와 전체합계가 나올 것이다...
Syntax is...
SELECT Column1, Column2, Column3, ...
FROM TableName
WHERE Condition
GROUP BY ROLLUP (Column1, Column2, Column3, ...)
SELECT 품명컬럼, 일자컬럼, SUM(수량컬럼)FROM 테이블명
WHERE 해당조회조건
GROUP BY ROLLUP(품명컬럼, 일자컬럼)
이렇게 하면 아래와 같은 결과가 나온다.
품명 일자 수량
A 20060523 10
A 20060524 20
A ________ 30
B 20060522 10
B 20060523 30
B 20060524 40
B ________ 80
_________ 110
단. 여기서도 맹점은 있다.
이 ROLLUP이라는 함수가 소계와 합계를 만들어 주기는 하지만 데이터를 다 보여주는 것이 아니다.
즉 위의 쿼리문의 GROUP BY ROLLUP(품명컬럼, 일자컬럼)을 GROUP BY ROLLUP(품명컬럼) 이렇게만 작성하면 우리가 원하는 데이터는 볼 수가 없고... 아래와 같이 소계와 합계만 보인다.
품명 수량
A ___ 30
B ___ 80
____ 110
그렇기에 좀 더 신중하게 데이터를 보고 작성을 해야만 한다.
댓글 없음:
댓글 쓰기