반응형

인라인뷰 (INLINE VIEW)

FROM절에 서브쿼리를 제시한다

서브쿼리 수행한 결과(RESULT SET)를 테이블 대신 사용한다

TOP-N 분석 시 주로 활용(데이터베이스 상에 있는 자료 중 최상위 N개의 자 료를 보기 위해 사용하는 기능)

 

일반문과 인라인뷰 비교

--보너스 포함 연봉이 3000만원 이상인 사원들의 사번,이름,연봉(상여포함),부서코드 조회
SELECT EMP_ID, EMP_NAME, ((SALARY*12)+(SALARY*NVL(BONUS,0))) 연봉, DEPT_CODE
FROM EMPLOYEE
WHERE ((SALARY*12)+(SALARY*BONUS)) >= 30000000;

--인라인 뷰를 사용 : 사원명만 골라내기(보너스 포함 연봉이 3000만원 이상인 사원들의 이름만)
SELECT EMP_NAME
FROM (SELECT EMP_ID, EMP_NAME, ((SALARY*12)+(SALARY*NVL(BONUS,0))) 연봉, DEPT_CODE
      FROM EMPLOYEE
      WHERE ((SALARY*12)+(SALARY*BONUS)) >= 30000000);

 

TOP-N분석 (ROWNUM)

ROWNUM : 오라클에서 제공해주는 컬럼으로 조회된 순서대로 1부터 순서를 부여해주는 컬럼

--전 직원중 급여가 가장 높은 상위5명(순위,사원명,급여)
SELECT ROWNUM 순위, EMP_NAME 사원명, SALARY 급여
FROM EMPLOYEE
WHERE ROWNUM <= 5
ORDER BY SALARY DESC; --급여순으로 순위 안됨

--해결(급여순으로 정렬된 테이블로 뽑자, FROM이 실행순서가 빠르므로)
SELECT ROWNUM 순위, EMP_NAME 사원명, SALARY 급여
FROM (SELECT *
      FROM EMPLOYEE
      ORDER BY SALARY DESC)
WHERE ROWNUM <= 5;

반응형

+ Recent posts