새벽코딩

[PostgresDB-2] 20. 서브쿼리와 IN, ALL, ANY (SUBQUERY) 본문

Programming/Postgres DB

[PostgresDB-2] 20. 서브쿼리와 IN, ALL, ANY (SUBQUERY)

midnightcoder 2022. 12. 29. 15:01

Filtering을 위한 Subquery에 대한 내용이다.

이전 posting에서 WHERE 절 Subqery는 그결과가 단일값 (single value) 또는 단일 column( many rows, con column N*1 )만 가능하다고 했다. 아래 예시를 살펴보자.

 

 

- IN : 포함 여부를 검사

만약, Sub query가 단일 column A B C를 가지고 있다면, grade가 A,B,C 안에 있는 학생만 Filter한다.

 

- ALL : 모두를 만족하는 것을 찾아줌

만약, Sub query가 단일 column 80, 72, 68을 가지고 왔다면, 이것을 가지고 비교연산을 ALL과 함께 진행하는데

그결과, 수학점수가 이 세가지 값보다 큰 학생만 Filter 해준다.

 

- ANY : 하나라도 만족하면 된다.

Sub query가 단일 column 80, 72, 68을 가지고 왔다면, main query에서는 비교연산을 통해서

이들 중 하나만이라도 수학점수가 작은것을 가져온다.

 

출처 : 홍팍의 'SQL 데이터 분석, 활용!'