반응형
인라인뷰 (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;
반응형
'DB(SQL)' 카테고리의 다른 글
[SQL] DDL 정의 및 구성 (0) | 2022.03.27 |
---|---|
[SQL] 윈도우함수(WINDOW FUNCTION) 순위매기는 함수 RANK (0) | 2022.03.27 |
[SQL] 서브쿼리 - (단일행)다중열, 다중행 다중열 (0) | 2022.03.27 |
[SQL] 서브쿼리 - 단일행(단일열), 다중행(단일열) (0) | 2022.03.27 |
[SQL] 서브쿼리 - 기본 정의 (0) | 2022.03.27 |