Know/DATABASE

rollup

Marine™ 2006. 2. 15. 16:10
반응형
[출처: http://cafe.daum.net/oraclesqltuning]

해당 테이블명을 t,

각 컬럼명을 pname(품명), psize(규격), qty(수량), amount(금액) 이라고 하면,

아래와 같이 되겠네요.



SELECT pname_a, psize, qty, amount
FROM (SELECT pname, DECODE (psize, NULL, pname) pname_a, psize,
SUM (qty) qty, SUM (amount) amount,
MAX (SUM (amount)) OVER (PARTITION BY pname) sub_max
FROM t
GROUP BY pname, ROLLUP ((psize, qty)))
ORDER BY sub_max DESC, pname, amount DESC



=====================================================



--------------------------------------
품명 규격 수량 금액
--------------------------------------
사과 30 3900
대 10 1900
중 10 1000
소 10 1000
배 30 3500
대 10 1500
중 10 1000
소 10 1000
수박 30 3000
대 10 1000
중 10 1000
소 10 1000
-----------------------------------
이렇게 나타내고 싶습니다.

정렬순서는 소계의 금액순인것이 까다롭기에 질문올려봅니다.

SQL문 하나로 가능할까요?



원시데이터는 (품명, 규격,수량, 금액)입니다.
반응형

'Know > DATABASE' 카테고리의 다른 글

DB2 JDBC TYPE  (0) 2006.07.13
JDBC FAILOVER 구현예제  (0) 2006.07.12
IBM WebSphere 5.0 데이타베이스 연결 설정법  (0) 2005.06.23
ERROR 2006 : MySQL server has gone away  (0) 2005.06.21
[MySQL] time out(wait_timeout) 계산과 설정  (0) 2005.06.21