반응형
[출처: 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문 하나로 가능할까요?
원시데이터는 (품명, 규격,수량, 금액)입니다.
해당 테이블명을 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 |