본문 바로가기
CS/데이터베이스

[Oracle] WITH절 (WITH ~ AS)

by 김크롱 2020. 9. 25.

WITH절 (WITH ~ AS)

: 동일한 SQL 반복 사용 시 성능 향상

 

 

--WITH AS절
WITH newtablename AS (SELECT column1, SUM(column2) AS nickname
                        FROM table1
                        GROUP BY column1)
    SELECT column1, nickname
        FROM newtablename
        WHERE nickname > (SELECT AVG(nickname)
                            FROM newtablename);

--일반 서브쿼리 사용 시
SELECT column1, SUM(column2) as nickname
    FROM table1
    GROUP BY column1
    HAVING SUM(column2) > (SELECT AVG(SUM(column2))
                            FROM table1
                            GROUP BY column1);

: WITH AS절 - newtablename 테이블에 table1의 column1, nickname 을 출력해 임시 저장(Temporary Tablespace)

- 이후 newtablename 테이블을 가지고 SQL 작성/사용

- 성능 향상을 위해 사용

- 임시 테이블이므로 whith절 내에서만 사용 가능