상세 컨텐츠

본문 제목

UNION ALL & UNION

프로그래밍/Oracle

by ........? 2012. 5. 15. 16:14

본문

UNION ALL

SELECT INSERT_DATE,
              COUNT(*) CNT //AS 안써도 보이는 칼럼명 변경 가능
  FROM(SELECT TO_CHAR(INSERT_DATE,'YYYYMMDD') INSERT_DATE,
                           ACCESS_IP
                FROM FBC_ACCESS_DAT
              WHERE INSERT_DATE > TO_DATE('20120514','YYYYMMDD')
                   AND JOIN_ACCESS_POINT_CD = '108_M_2012050900001'
           GROUP BY TO_CHAR(INSERT_DATE,'YYYYMMDD'), ACCESS_IP
               UNION ALL
            SELECT TO_CHAR(INSERT_DATE,'YYYYMMDD') INSERT_DATE,
                          ACCESS_IP
               FROM FBC_ACCESS_LOG
             WHERE JOIN_ACCESS_POINT_CD = '108_M_2012050900001'
            GROUP BY TO_CHAR(INSERT_DATE,'YYYYMMDD'), ACCESS_IP)
GROUP BY INSERT_DATE
ORDER BY COUNT(*)

첫번째 SELECT 문과 두번째 SELECT 문을 합쳐라

단, SELECT 조건이 같아야 한다


UNION 

두 테이블의 결과를 합치되, 중복된 값을 제외

이렇게 중복을 제거하기 위해 불가피하게 'SORT'

따라서 자료가 많거나 Index가 되어 있지 않은 필드를 대상으로 하게 되면

쿼리 시간이 길어짐


'프로그래밍 > Oracle' 카테고리의 다른 글

오라클 SUBSTR, INSTR  (0) 2012.06.07
UPDATE 문  (0) 2012.06.04
GROUP BY & HAVING  (0) 2012.05.15
오라클 TRUNC  (0) 2012.05.08
오라클 DECODE  (0) 2012.05.08

관련글 더보기

댓글 영역