sum 합계 속도 개선 질문 드립니다..! 0 2 2,869

by 희망회로 [Oracle Tuning] 합계 sum 튜닝 집계 [2023.08.14 13:25:59]


고객번호 C_NO 구분코드1 G_CODE_1 구분코드2 G_CODE_2 구분코드3 G_CODE_3 구분코드4 G_CODE_4

테이블 A (5개 컬럼 모두 PK)

고객번호 C_NO 구분코드1 G_CODE_1 구분코드2 G_CODE_2 구분코드3 G_CODE_3 구분코드4 G_CODE_4 데이타 DATA_1 데이타 DATA_2 금액 AMT

테이블 B (고객번호~구분코드4 PK)

select A.C_NO

       ,A.G_CODE_1

       ,A.G_CODE_2

       ,A.G_CODE_3

       ,A.G_CODE_4

       ,( select sum(amt)

         from B

       where A.C_NO = B.C_NO

          and A.G_CODE_1 = B.G_CODE_1

          and A.G_CODE_2 = B.G_CODE_2

          and A.G_CODE_3 = B.G_CODE_3

          and A.G_CODE_4 = B.G_CODE_4

          and B.DATA_1 = '000001' )

     

        ,( select sum(amt)

         from B

       where A.C_NO = B.C_NO

          and A.G_CODE_1 = B.G_CODE_1

          and A.G_CODE_2 = B.G_CODE_2

          and A.G_CODE_3 = B.G_CODE_3

          and A.G_CODE_4 = B.G_CODE_4

          and B.DATA_1 = '000002' )

       /*

          B.DATA_1의 값이 000001 부터 쭈우우욱 계쏙 있다고 가정..

          B.DATA_2의 값이 000001 부터 쭈우우욱 계쏙 있다고 가정..

          이 때 각각의 PK들에 대한 B 테이블의 AMT 값을 구하려고 합니다.

           이하 생략 

        */

from A

 

질문드리겠습니다 ㅠㅠ!!!

select절에 서브쿼리에 예시로 00001,00002의 값에 대한 sum값을 가져오는 부분이 있는데요~

00001 부터 값이 계속 있어서 항목이 많아지면 속도가 그만큼 느려져서... 혹시 효율적으로 가져올 수 있는 방법이 있는지 궁금합니다..!

감사합니당..

by 마농 [2023.08.16 00:06:43]
SELECT a.c_no
     , a.g_code_1
     , a.g_code_2
     , a.g_code_3
     , a.g_code_4
     , SUM(DECODE(b.data_1, '000001', b.amt)) amt_1
     , SUM(DECODE(b.data_1, '000002', b.amt)) amt_2
     , SUM(DECODE(b.data_1, '000003', b.amt)) amt_3
     , SUM(DECODE(b.data_1, '000004', b.amt)) amt_4
     , SUM(DECODE(b.data_1, '000005', b.amt)) amt_5
  FROM tab_a a
  LEFT OUTER JOIN tab_b b
    ON a.c_no     = b.c_no
   AND a.g_code_1 = b.g_code_1
   AND a.g_code_2 = b.g_code_2
   AND a.g_code_3 = b.g_code_3
   AND a.g_code_4 = b.g_code_4
 GROUP BY a.c_no, a.g_code_1, a.g_code_2, a.g_code_3, a.g_code_4
 ORDER BY a.c_no, a.g_code_1, a.g_code_2, a.g_code_3, a.g_code_4
;

 


by 희망회로 [2023.08.16 11:10:44]

앗 마농님이다!! 안녕하세요

회원가입은 안 된 상태로 구루비에 종종 놀러오곤 했었는데 마농님 답변글 잘 보고 있었습니다.ㅎㅎ

이번에 첫 게시글을 남겼었는데 답변을 주셔서 너무 감사합니다

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