database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39936 게시물 읽기
No. 39936
통계 산출 쿼리 마무리가 안됩니다.
작성자
노근배(nohkb)
작성일
2012-12-20 20:22
조회수
7,506

요건 : 월별로 종류에 대한 건수의 합, 시간의 합, 용량의 합, 사용자의 합 을 산출하려고 합니다.

고정 항목  : 월은 년에 대한 모든 월로 1월ㅂ투 12월까지 고정입니다.

                     종류는 기자재, 기상악화, 외물접촉, 일반인과실, 고객파급, 기타로 고정입니다.

                     항목인 건수, 시간합, 전력함, 사용자합은 고정입니다.

 

출력레이아웃은 아래와 같습니다.

 

종류 항목 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
기자재 건수 0 0 0 0 0 0 0 0 0 0 0 0
기자재 시간합 0 0 0 0 0 0 0 0 0 0 0 0
기자재 전력합 0 0 0 0 0 0 0 0 0 0 0 0
기자재 사용자합 0 0 0 0 0 0 0 0 0 0 0 0
기상악화 건수 0 0 0 0 0 0 0 0 0 0 0 0
기상악화 시간합 0 0 0 0 0 0 0 0 0 0 0 0
기상악화 전력합 0 0 0 0 0 0 0 0 0 0 0 0
기상악화 사용자합 0 0 0 0 0 0 0 0 0 0 0 0
외물접촉 건수 0 0 0 0 0 0 0 0 0 0 0 0
외물접촉 시간합 0 0 0 0 0 0 0 0 0 0 0 0
외물접촉 전력합 0 0 0 0 0 0 0 0 0 0 0 0
외물접촉 사용자합 0 0 0 0 0 0 0 0 0 0 0 0
일반인과실 건수 0 0 0 0 0 0 0 0 1 0 0 0
일반인과실 시간합 0 0 0 0 0 0 0 0 5 0 0 0
일반인과실 전력합 0 0 0 0 0 0 0 0 18 0 0 0
일반인과실 사용자합 0 0 0 0 0 0 0 0 16 0 0 0
고객파급 건수 1 0 0 0 0 0 0 0 0 0 0 0
고객파급 시간합 50 0 0 0 0 0 0 0 0 0 0 0
고객파급 전력합 128 0 0 0 0 0 0 0 0 0 0 0
고객파급 사용자합 25 0 0 0 0 0 0 0 0 0 0 0
기타 건수 0 0 0 0 0 2 0 0 0 0 0 0
기타 시간합 0 0 0 0 0 22 0 0 0 0 0 0
기타 전력합 0 0 0 0 0 86 0 0 0 0 0 0
기타 사용자합 0 0 0 0 0 7 0 0 0 0 0 0

 

 

샘플 데이터는

WITH TAB AS
(
    SELECT '2012-01-01' DT,  '고객파급' CUSNM, 1 CNT1, 50 TIM, 128 CAP, 25 USERCNT FROM DUAL UNION ALL
    SELECT '2012-06-02' DT,  '기타'   CUSNM, 1 CNT1, 12 TIM, 80 CAP, 5 USERCNT FROM DUAL UNION ALL
    SELECT '2012-06-15' DT,  '기타' CUSNM, 1 CNT1, 10 TIM, 6 CAP, 2 USERCNT FROM DUAL UNION ALL
    SELECT '2012-09-02' DT,  '일반인과실' CUSNM, 1 CNT1, 5 TIM, 18 CAP, 16 USERCNT FROM DUAL
), AAAA AS
(
    SELECT '기자재' CUSNM FROM DUAL UNION ALL
    SELECT '기상악화'   CUSNM FROM DUAL UNION ALL
    SELECT '외물접촉' CUSNM FROM DUAL UNION ALL
    SELECT '일반인과실' CUSNM FROM DUAL UNION ALL
    SELECT '고객파급' CUSNM FROM DUAL UNION ALL
    SELECT '기타' CUSNM FROM DUAL
)

 

MAX(DECODE()) 를 이용해 월은 설정은 했으나

종류가 모두 나온상태에서 건수, 시간(분)합, 전력합, 사용자합이 나와야 합니다.

두가지를 합치는 부분이 안됩니다.

이곳에 고수님들의 조언을 봐도 2가지를 붙이는 건 한계가 있어서 이렇게 조언을 구하고자 합니다

많은 댓글이 달렸으면 좋겠습니다.

부탁드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

WITH tab AS
(
SELECT '2012-01-01' dt, '고객파급' cusnm, 1 cnt1, 50 tim, 128 cap, 25 usercnt FROM dual
UNION ALL SELECT '2012-06-02', '기타'      , 1, 12, 80,  5 FROM dual
UNION ALL SELECT '2012-06-15', '기타'      , 1, 10,  6,  2 FROM dual
UNION ALL SELECT '2012-09-02', '일반인과실', 1,  5, 18, 16 FROM dual
)
, aaaa AS
(
SELECT 1 cuscd, '기자재' cusnm FROM dual
UNION ALL SELECT 2, '기상악화'   FROM dual
UNION ALL SELECT 3, '외물접촉'   FROM dual
UNION ALL SELECT 4, '일반인과실' FROM dual
UNION ALL SELECT 5, '고객파급'   FROM dual
UNION ALL SELECT 6, '기타'       FROM dual
)
SELECT cusnm
     , DECODE(lv, 1, '건수', 2, '시간합', 3, '전력합', 4, '사용자합') gubun
     , NVL(SUM(DECODE(mm, '01', v)), 0) m01
     , NVL(SUM(DECODE(mm, '02', v)), 0) m02
     , NVL(SUM(DECODE(mm, '03', v)), 0) m03
     , NVL(SUM(DECODE(mm, '04', v)), 0) m04
     , NVL(SUM(DECODE(mm, '05', v)), 0) m05
     , NVL(SUM(DECODE(mm, '06', v)), 0) m06
     , NVL(SUM(DECODE(mm, '07', v)), 0) m07
     , NVL(SUM(DECODE(mm, '08', v)), 0) m08
     , NVL(SUM(DECODE(mm, '09', v)), 0) m09
     , NVL(SUM(DECODE(mm, '10', v)), 0) m10
     , NVL(SUM(DECODE(mm, '11', v)), 0) m11
     , NVL(SUM(DECODE(mm, '12', v)), 0) m12
  FROM (SELECT cuscd, cusnm, lv
             , SUBSTR(dt, 6, 2) mm
             , DECODE(lv, 1, cnt1, 2, tim, 3, cap, 4, usercnt) v
          FROM (SELECT a.cuscd, a.cusnm
                     , b.dt, b.cnt1, b.tim, b.cap, b.usercnt
                  FROM aaaa a
                     , tab b
                 WHERE a.cusnm = b.cusnm(+)
                   AND b.dt(+) LIKE '2012%'
                )
             , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 4)
        )
 GROUP BY cuscd, cusnm, lv
 ORDER BY cuscd, lv
;

마농(manon94)님이 2012-12-28 10:50에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39946한 row를 여러줄로 표시 하려면 어떻게 하나요? [1]
천재음악가
2012-12-28
6607
39940프로시저 문의 [1]
약쟁이총각
2012-12-26
6038
39938MERGE 관련하여 질문 드립니다. [1]
이민욱
2012-12-21
5836
39936통계 산출 쿼리 마무리가 안됩니다. [1]
노근배
2012-12-20
7506
39933도움부탁드립니다..ㅠㅠ 쿼리검증질문 [2]
초보
2012-12-18
5490
39932고정으로 나오게 [1]
도와주세요.
2012-12-18
6450
399312개의 VIEW에서 조회내용뽑아내기
희희
2012-12-18
5400
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다