오라클 조인문에 그룹바이 사용 질문. 0 2 2,505

by 이런잭쓴 [2014.02.27 16:17:21]


    select NE_START_TIME AS "시작시간"
        , NE_OWNER AS OWNER
        , NE_TABLE_NAME AS TABLE_NAME
        , NE_SEGMENT_TYPE AS SEGMENT_TYPE
        , BE_TABLESPACE_NAME AS "전_TABLESPACE_NAME"
        , NE_TABLESPACE_NAME AS "후_TABLESPACE_NAME"
        , SUM(BE_SEGMENT_SIZE) as "전_SEGMENT_SIZE"
        , SUM(NE_SEGMENT_SIZE) as "후_SEGMENT_SIZE"
        , SUM(BE_SEGMENT_SIZE)-SUM(NE_SEGMENT_SIZE) as "반환량(MB)"
    from o_report o, n_report n
    where NE_START_TIME = BE_START_TIME
    and NE_OWNER = BE_OWNER
    AND NE_TABLE_NAME = BE_TABLE_NAME
    AND NE_SEGMENT_NAME = BE_SEGMENT_NAME
    GROUP BY NE_START_TIME, NE_OWNER, NE_TABLE_NAME, BE_TABLESPACE_NAME, NE_TABLESPACE_NAME
            , NE_SEGMENT_TYPE
    ORDER BY NE_START_TIME;    


예: 파티션 11개 가지고 있는 테이블
각각의 세그먼트 크기 8MB

그렇기때문에 그룹바이 이용해서 Sum하면 168MB가 나와야 되지만 . ㅜㅜ3528MB가 나와버리네요 .  지금 저 쿼리는 11번을 더 더해버리네여 ; '']


원인이 뭘까요ㅕ ㅜㅜ




by 이런잭쓴 [2014.02.27 16:38:02]
아 해결됬네요 ~! ㅋ

by 마농 [2014.02.27 16:41:33]
m : n 조인인가요? Partition Product 가 발생되겟네요.
조인 후에 Group By 하지 마시고.
m 과 n 각각을 Group By 하여 1로 만든 후에 1 : 1 조인하세요.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입