subquery
sub query는 쿼리 안에 쿼리가 있는 것이다.
sub query를 쓰는 이유가 무엇일까?
첫 번째 이유는
aggregate function의 사용 규칙 때문이다.
aggregate function은 avg, sum, max, min, count 같은 수와 관련된 함수를 말하는데,
이러한 함수는 where 구문에서 쓸 수가 없고 select 구문에서만 쓸 수가 있다.
따라서 where에 aggregate 성질이 드러난 컬럼값을 적고 싶을 때는
조건에 해당하는 사항을 select 구문으로 넣어야 하는 것이다.
두 번째 이유는
column list로 넣기 위해서이다.
MAX(SALARY)는 한 값으로 모든 행에 나오게 하려고 한다.
아래와 같이 MAX(SALARY)를 select문에 다른 칼럼들과 같이 넣으려고 하면 에러가 발생한다.
select 구문에 select 구문을 넣어서, 해당 aggregation 함수가 적용된 컬럼이 나오도록 만든다.
세 번째 이유는
from 구문에서 테이블을 지정할 때, 일부 수정된 테이블로 가져오고 싶어서이다.