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;
위와 같이 작성하면 왠지 될 것만 같다. 하지만 ‼️ 테이블을 보면 아니다 .
전체 테이블을 보면 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를 사용하지 않았을 경우와 사용한 경우의
결과값이 다르게 나오는걸 볼 수 있다 ‼️
인라인 뷰는 주로 TOP-N (상위 몇개만 조회하는 방식) 분석에 주로 사용된다 ‼️