Certificate/SQL

[SQL] sub-queries and nested selects

Olivia-BlackCherry 2023. 5. 3. 13:33

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 구문에서 테이블을 지정할 때, 일부 수정된 테이블로 가져오고 싶어서이다.