[Oracle] Union해서 나온 결과 ROW 값 합치기

가끔 저장된 데이터는 다르지만 테이블 구조는 같은 경우가 있습니다. 이 구조가 같은 테이블을 같이 조회할 경우에는 컬럼이같기에 UNION을 사용하면 굉장히 효율적입니다. UNION을 사용하였기에 두 테이블에 있는 값은 합쳐지지 않고 따로따로 조회가 되어 합쳐지는데요. 하지만 가끔은 이렇게 조회된 두테이블의 결과 값을 서로 합쳐줘야할 때가 있습니다. 대표적으로 두 테이블의 통계를 낼때가 있겠군요. 


예제

SELECT
S.MODULE,
SUM(S.ERR)AS ERROR_COUNT, --에러갯수
SUM(S.MOD) AS MOD_COUNT --수정갯수
FROM
(
    SELECT
    A.MODULE
    COUNT(A.ERR) AS ERR,
    COUNT(A.MOD) AS MOD,
    FROM
    ERROR_TABLE_1 A --1번테이블
    GROUP BY A.MODULE_CD

    UNION ALL -- UNION

    SELECT
    A.MODULE
    COUNT(A.ERR) AS ERR,
    COUNT(A.MOD) AS MOD,
    FROM
    ERROR_TABLE_2 A --2번테이블
    GROUP BY A.MODULE_CD
)S
GROUP BY S.MODULE_CD


댓글

Designed by JB FACTORY