WITH가 사용된 쿼리의 수정 0 2 1,851

by TigerStone [SQL Query] WITH [2017.04.30 21:03:30]


안녕하십니까!

WITH문을 사용한 쿼리를, WITH가 없지만 같은 기능을 하게끔 수정해야하는 상황인데...

하나의 쿼리로는 불가하고, 쿼리 2개를 나누어 만들어야하는지 궁금합니다.

아래 쿼리를 WITH가 없게끔 어떻게 수정할 수 있을까요?

불가피하다면 쿼리가 2개로 나뉘어도 괜찮습니다!

답변 간절히 기다리겠습니다!

WITH A AS (
    SELECT IP, COUNTRY, COUNT(*) CNT, RATIO_TO_REPORT(COUNT(*)) OVER(PARTITION BY IP) RAT
    FROM COUNTRY_TABLE
    GROUP BY IP, COUNTRY
    ORDER BY IP, COUNTRY)
SELECT IP, COUNTRY, DECODE(TRUNC(RAT, 3)*100, NULL, '', TRUNC(RAT, 3)*100||'%') PREFERENCE
FROM A
WHERE RAT>0.8;
by 우리집아찌 [2017.05.01 09:35:04]

with 가 불편하면 from A를 위의 with절의 쿼리를 인라인뷰로 바꾸시면 됩니다

select .... from (  with 안에 선언된 쿼리  ) a


by 마농 [2017.05.02 08:42:28]

WITH 는 INLIN-VIEW(From절의 서브쿼리)를 Select 절 위로 올린 것이라고 보면 됩니다.
작성하신 쿼리의 Decode 부분은 불필요한 구문입니다.
RAT 값이 널이 나올수 없는 쿼리입니다.

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