새벽코딩

[PostgresDB-2] 18. 서브쿼리란?(Subquery) 본문

Programming/Postgres DB

[PostgresDB-2] 18. 서브쿼리란?(Subquery)

midnightcoder 2022. 12. 29. 05:43

- Subquery 란?

 : Query 속에 존재하는 또다른 Query 로서, 먼저 수행된 query의 결과를 가지고 다시 query를 수행한다.

 

수학점수가 평균보다 높은 학생을 찾는다고 가정

먼저 Inner query (subquery)에서 수학점수의 평균을 계산하고,

그 결과를 기준으로 main query(바깥쪽 쿼리) 에서 학생 정보를 필터링 할 수 있다.

 

쓰이는 곳은 SELECT 절, FROM절, WHERE절 그리고 JOIN절에 쓰일 수 있는데,

각 위치에 따라서 형태의 제한이 있음에 주의해야한다. 

- SELECT절 : 1행 1열의 단일 값만 사용 가능

 

- FROM, JOIN 절 : 행과 열의 크기는 상관 없지만, 반드시 별칭을 붙여줘야 한다.

- WHERE 절 : 사용자의 연산자에 따라, SUBQUERY의 결과 크기가 제한되는데, 

                       1행 1열의 단일값, 또는 N행 1열이 될 수 있다.