[ORACLE] INNER VIEW

privatekim·2024년 6월 19일
0

ORACLE

목록 보기
12/38

FROM절 안에서 사용된 SUBQUERY를 우리는 INNER VIEW라고 한다.

INNER VIEW에서 도출된 결과 값을 바탕으로 우리는 쿼리를 좀 더 다양하게 작성할 수 있다.

자신이 속한 부서의 평균 연봉보다 더 많이 받는 사원의 데이터를 출력하시오.

select e.*
from hr.employees e,(
      select department_id , avg(salary) as avg_sal
      from hr.employees
      group by department_id) t
where e.department_id = t.department_id and e.salary > avg_sal;

주의 할 점

우리는 앞전의 CORELATED SUBQUERY를 공부하며 같은 문제를 다음과 같이 풀어보았었다.

select *
from hr.employees e
where salary > (
	select avg(salary)
    from hr.employees
    where department_id = e.department_id
);

서브쿼리를 사용하면 일반적으로 oracle은 서브쿼리의 내용을 조인으로 표현하려고 한다. 왜냐하면 서브쿼리의 종속성을 오라클이 싫어하기 때문이다.

하지만, 조인을 사용하게 될 경우 1쪽과 M쪽 집합에서 M을 기준으로 결과가 생성되기 때문에 결과를 도출할 때 이러한 점을 주의해서 사용해야 한다.

0개의 댓글