통계 관련 SQL 질문 있습니다. 0 2 1,461

by 푸르른 [SQL Query] 통계 [2017.04.19 22:30:34]


특정 테이블들을 조회해와서 아래와 같은 형식의
1차 통계 데이터를 뽑아 왔습니다
A B(A컬럼 코드) C D(C컬럼 코드) E F
자동차 1 현대 12 2 10
자동차 1 기아 15 10 25
자동차 1 쉐보래 119 13 14
핸드폰 2 삼성 21 20 30
핸드폰 2 엘지 22 14 40
핸드폰 2 애플 24 40 25
다른그룹 . . . . .
. . . . . .
위의 데이터를 기준으로 아래의 데이터를  구성하려고
롤업을 사용 하여 합계를 구하였는데 정렬에 문제가 있습니다 ..
어떻게 해야되나요 . 손을 델수록 쿼리는 느려지는 것같고
도와주세요
A C E F    
자동차 합계 25 49    
자동차 현대 2 10    
자동차 기아 10 25    
자동차 쉐보래 13 14    
핸드폰 합계 74 95    
핸드폰 삼성 20 30    
핸드폰 엘지 14 40    
핸드폰 애플 40 25    
다른그룹 .  . .    
. .  . .    
. .  . .    

또는

A C E F
자동차 합계 25 49
  현대 2 10
  기아 10 25
  쉐보래 13 14
핸드폰 합계 74 95
  삼성 20 30
  엘지 14 40
  애플 40 25
다른그룹 . . .
. . . .
. . . .
by 마농 [2017.04.20 07:23:02]
SELECT DECODE(GROUPING(cd2), 1, nm1) nm1
     , NVL(nm2, '합계') nm2
     , SUM(v1) v1
     , SUM(v2) v2
  FROM t
 GROUP BY cd1, nm1, ROLLUP((cd2, nm2))
 ORDER BY cd1, cd2 NULLS FIRST            -- Null     을 이용한 정렬
-- ORDER BY cd1, GROUPING(cd2) DESC, cd2  -- Grouping 을 이용한 정렬
;

 


by 푸르른 [2017.04.20 17:03:32]

언제나 마농님께 많이 배워 가네요 항상 감사합니다.

 

정신이없어서 이제서야 댓글 남겨 죄송합니다 ㅎㅎ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입