Back End/DataBase

Inline View (인라인뷰)에 대하여

KoesJin 2024. 12. 20. 19:20

⭐️ Inline View 란 ? 

Inline View 란 SQL 문에서 FROM절에 작성된 서브쿼리를 말한다.

 

[기본구조]

SELECT 컬럼명
FROM (
    SELECT 컬럼명
    FROM 테이블명
    WHERE 조건
) AS 인라인뷰별칭
WHERE 조건;

 

-> 서브쿼리에 수행 결과를 마치 테이블 처럼 사용할 수 있다 ‼️

 

 

🧐 인라인 뷰를 사용 하는 이유가 뭘까 ?

 

다음 문제를 보자.

 

[문제]

전 직원중 급여가 가장 높은 5명만 조회

 

[코드]

SELECT ROWNUM, EMP_NAME, SALARY
FROM EMPLOYEE e 
ORDER BY SALARY DESC;

 

일단 전체 사원 , 급여를 조회해 보자,

 

전체 사원 월급순 정렬

 

위 사진은 사원명 , 급여순으로 정렬된 Result Set이다.

 

[코드]

SELECT ROWNUM, EMP_NAME, SALARY
FROM EMPLOYEE e 
WHERE ROWNUM <= 5
ORDER BY SALARY DESC;

 

전 직원중 급여가 가장 높은 5명 조회

 

위와 같이 작성하면 왠지 될 것만 같다.  하지만 ‼️ 테이블을 보면 아니다 .

 

전체 테이블을 보면 ROWNUM이 3번 ~ 5번 사원이 실제로 높은 순으로 정렬된게

아닌 것을 볼 수 있다.

 


 

이러한 문제가 발생하기 때문에 일반적인 코드로는 정렬하는데 문제가 발생한다.

 

⭐️ 그렇기때문에 FROM() 절에 Inline View를 사용해서 하나의 테이블로 보고 , 그 테이블을 정렬 시켜주면 

되는 것이다 ‼️

 

[코드]

SELECT ROWNUM , EMP_NAMe , SALARY
FROM (SELECT ROWNUM, EMP_NAME, SALARY
	  FROM EMPLOYEE e 
	  ORDER BY SALARY DESC)
WHERE ROWNUM <= 5;

 

 

Inline View 이용한 정렬‼️

 

 

위에서 Inline View를 사용하지 않았을 경우와 사용한 경우의

결과값이 다르게 나오는걸 볼 수 있다 ‼️

 


 

인라인 뷰는 주로 TOP-N (상위 몇개만 조회하는 방식) 분석에 주로 사용된다 ‼️