|
내용 연결을 위한 -_- 저번글의 마지막..
-----------------------------------------------------------------------이걸 해결할려면 -_-; 모든 경우의 수 GROUPING 해서 Union All 로 하면 된다는거야 다 아는 것이겠지만 , 그렇게 안하기 위한것이 !! 함수를 쓰는 목적이니깐; 이런경우 사용하는것이 CUBE ..!!!!! 역시..나 함수 설명 생략... 데이터웨어 하우스 수업을 들은 사람이라면 알겠지만 , 모르는 사람은 ;; 정육면체 큐브 를 생각하면 된다.. 영화말고 -_- 그..퍼즐게임;; GROUP BY Rollup ( company_cd , customer_cd , subject ) 을 GROUP BY CUBE ( company_cd , customer_cd , subject ) 로 수정해보자. SELECT '200612' as tran_date ,결과: TRAN_DATE COMPANY CUSTOMER SUBJECT AMT DEPTH_LEVEL --------- ---------- ---------- ---------- ---------------------- ----------------------------- 200612 * * * 1800 총 합계 200612 * * AAA 300 200612 * * BBB 600 200612 * * CCC 900 200612 * 77777 * 200 200612 * 77777 AAA 200 200612 * 88888 * 400 200612 * 88888 BBB 400 200612 * 99999 * 1200 200612 * 99999 AAA 100 200612 * 99999 BBB 200 200612 * 99999 CCC 900 200612 11111 * * 900 date,Subject,customer_cd 별 합계 200612 11111 * AAA 300 200612 11111 * BBB 600 200612 11111 77777 * 200 date,Subject별 합계 200612 11111 77777 AAA 200 date별 합계 200612 11111 88888 * 400 date,Subject별 합계 200612 11111 88888 BBB 400 date별 합계 200612 11111 99999 * 300 date,Subject별 합계 200612 11111 99999 AAA 100 date별 합계 200612 11111 99999 BBB 200 date별 합계 200612 22222 * * 900 date,Subject,customer_cd 별 합계 200612 22222 * CCC 900 200612 22222 99999 * 900 date,Subject별 합계 200612 22222 99999 CCC 900 date별 합계 26 rows selected 음..26건이나 출력 되는군... 왜 이렇게 나오냐..CUBE 는 조건의 모든 경우의 수의 합이기 떄문에.. 간단하게 애기하면 ;; GROUP BY CUBE ( company_cd , customer_cd , subject ) ........ 넘 길다 -_- 생략하자; 암튼..고등학교 1? 학년 떄 배운..경우의 수를 생각하자 , 그렇게 되는것이다..=ㅁ= 좀 더 이해하기 쉽기 위하여.. 데이터 한건에 대해서 만 Cube 함수를 적용해보자.. SELECT NVL(company_cd,'*') as company , 쿼리를 조금 보기 좋게 수정했지.. 보기 좋으라고 친절하게 depth_level_cnt 정렬도 해주고..;; 자 그러면....~ 결과는 몇건?? 네이버는 Extended Entries 기능이 없어서 정말 안좋은듯.. 이거..쩝쩝;; 결과는 CASE 문만 보아도 결과는 알수 있을듯!! COMPANY CUSTOMER SUBJECT AMT DEPTH_LEVEL DEPTH_LEVEL_CNT ---------- ---------- ---------- ---------------------- -------------------------- ---------------------- 11111 99999 AAA 100 원래DATA 0 11111 99999 * 100 Subject별 합계 1 11111 * AAA 100 customer_cd별 합계 2 11111 * * 100 customer_cd,Subject 별 합계 3 * 99999 AAA 100 company_cd별 합계 4 * 99999 * 100 company_cd,subject별 합계 5 * * AAA 100 company_cd,customer_cd별 합계 6 * * * 100 총 합계 7 8 rows selected 8건..!! 왜 !! 냐고 물으신다면.. GROUP BY CUBE ( company_cd , customer_cd , subject ) 조건이 3개이니깐 2의3승 = 8 이 나오는거지...
난 16개의 조건을 걸고 테스트 한다고 SQL 실행했다가..-_-; 엄청난 시간의 압박에 멈추었다가.. 강제종료 해버렸는데 -_- 그게 쿼리가 실제로 계속 DB서버 에서 실행되고 있어서.. 그날 -_-시스템이 엄청 버벅거렸지 .~~ 여기서...!!!!! ------------------------------------------------------------------- GROUP BY ROLLUP ( company_cd , customer_cd , subject ) UNION ALL GROUP BY ROLLUP ( customer_cd ) UNION ALL GROUP BY ROLLUP ( company_cd , subject ) 이런 데이터만 필요하다면?? CUBE 의 모든 경우의 수가 아닌 불특정? 몇몇 의 조건만 필요한경우.어떻게?? HAVING 이나WHERE 문에서 depth_level 조건을 주는것은? 어떨까?? ------------------------------------------------------------------- # by darkneo | 2007/01/05 14:56 | 트랙백 | 덧글(0)
|
카테고리
이전블로그
이글루링크
최근 등록된 덧글
이거 내년 2008 년에 아역..
by 코난 at 09/13 말랑 님// 정말카레 좋.. by darkneo at 07/16 카레우동! 전문집에서 .. by 말랑 at 07/14 유즈님// 전편을 보셨다.. by darkneo at 12/02 데스노트..저는 어둠의.. by 유즈 at 12/01 가끔 카페에 방명록 있는 .. by 유즈 at 11/13 괴도키드 나왔는데요 by 김레나 at 10/19 저걸..봐야하나....... by 스페이드A at 10/03 안녕하세요~ 가든에서 .. by 유즈 at 09/19 야후! 재팬에서 오로나민.. by 奈良シカトリ at 09/13 포토로그
| ||||