쿼리좀 봐주세요 0 1 325

by 탑개발자 [SQL Query] [2018.01.11 09:19:44]


  SELECT E_SEQ 
         , (SELECT COUNT(*)
              FROM ( 
                SELECT EC_EDU_TARGET
                    FROM (   
                      SELECT REGEXP_SUBSTR (F.EC_EDU_TARGET,'[^,]+',1,LEVEL)AS EC_EDU_TARGET
                          FROM TBLK_NEW_EDUCATION_COURSE F
                          WHERE  F.E_SEQ =
A.E_SEQ AND F.EC_TO_TARGET = 'TOT1'
                          CONNECT BY INSTR (F.EC_EDU_TARGET,',',1,LEVEL - 1) > 0
                     )
                    GROUP BY EC_EDU_TARGET
                )
              WHERE EC_EDU_TARGET IN ('1', '2', '3', '4')

              ) AS ABC
  FROM TBLK_NEW_EDUCATION A

 

TBLK_NEW_EDUCATION  테이블에 여러건에 데이터가 있는데 각각 빨간색으로 표시된 부분 KEY 값이 변경되면 서  결과 값이 달라져야하는데

ABC 값이 동일하게 나와요, 파란색 쿼리만 따로 빼서 빨간색 부분 값을 임이로 넣어서 돌리면 잘나오는데 큰 쿼리 안으로 들어가면 자꾸 값이 동일하게 나오고 있어요

답변좀 부탁드려요

 

 

by 마농 [2018.01.11 09:42:09]

여러모로 복잡하고 비효율적인 쿼리입니다.
문법상으로도 main 의 항목이 두단계 이상 하위 쿼리조건으로 들어갈수도 없는데요?
실행이 된다는게 의외네요? 오류 날 것 같은데요.
다른 방식으로 개선이 필요해 보입니다.
위 두 테이블의 pk 를 알려주세요.
원본 대비 결과표 예시자료를 볼 수 있으면 더욱 좋습니다.

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