서브쿼리란 하나의 SQL문안에 포함되어 있는 또 다른 SQL문을 말한다.
사원들의 평균 급여보다 많이 받는 사원들의 이름,급여를 조회
IN: 목록에 있는 임의의 값과 동일하면 참
ANY: 서브쿼리에서 반환된 각각의 값과 비교하여 하나라도 참이면 참
ALL: 서브쿼리에서 반환된 모든 값과 비교하여 모두 참이면 참
연산자는 한개의 값만 비교하기 때문에 오류가뜸
여러개개의 값이 포함되는지 알아보려면 IN을 써야됨
ALL: 가장 큰것보다 큰 값의 행
ANY : 아무거나 만족하면 되니 가장 작은것보다 큰 값의 행
가상의 테이블이 만들어짐
부서별 평균 급여보다 더 많은 급여를 받는사람
select employee_id, salary,(select avg(salary) from employees)
from employee e
where salary > (select avg(salary) from employees);
평균급여 가상의 테이블을 만들고 조인하기 때문에 연산횟수가 위에 코드보다 줄어듦.
4) TOP-N서브쿼리