PostgreSQL 하위 쿼리 를 사용하는 방법

 

하나의 쿼리에서 첫 번째 쿼리의 결과를 두 번째 쿼리로 전달하는 방법을 원합니다. 

해결책은 하위 쿼리를 사용하는 것입니다.

 

하위 쿼리는 SELECT, INSERT, DELETE및 와 같은 다른 쿼리 내부에 중첩된 쿼리 UPDATE입니다. 

 

하위 쿼리를 구성하기 위해 두 번째 쿼리를 대괄호  묶고 WHERE 절 에서 표현식으로 사용합니다.

SELECT
	film_id,
	title,
	rental_rate
FROM
	film
WHERE
	rental_rate > (
		SELECT
			AVG (rental_rate)
		FROM
			film
	);

반응형

 

1) IN 연산자가 있는 PostgreSQL 하위 쿼리

-- 반환된 날짜가 2005-05-29및 사이에 있는 영화를 가져오는 쿼리
SELECT
	inventory.film_id
FROM
	rental
INNER JOIN inventory ON inventory.inventory_id = rental.inventory_id
WHERE
	return_date BETWEEN '2005-05-29'
AND '2005-05-30';

 

2) EXISTS 연산자가 있는 PostgreSQL 하위 쿼리

 

EXISTS (SELECT 1 FROM tbl WHERE condition);
  • 하위 쿼리는 EXISTS연산자 의 입력이 될 수 있습니다 . 
  • 하위 쿼리가 행을 EXISTS반환 하면 연산자는 true를 반환합니다. 
  • 하위 쿼리가 행을 반환하지 않으면 EXISTSoperator 의 결과 는 false입니다.

 

SELECT
	first_name,
	last_name
FROM
	customer
WHERE
	EXISTS (
		SELECT
			1
		FROM
			payment
		WHERE
			payment.customer_id = customer.customer_id
	);

쿼리  열에 대한 내부 조인 처럼 작동합니다 customer_id. 

그러나 customer테이블에 일부 해당 행이 있더라도 테이블의 각 행에 대해 최대 하나의 행을 반환 payment합니다.

반응형

'SW ENGINEERING > Postgres' 카테고리의 다른 글

[PostgreSQL] BASIC - ALL  (0) 2021.09.03
[PostgreSQL] BASIC - ANY  (0) 2021.09.03
[PostgreSQL] BASIC - ROLLUP  (0) 2021.09.03
[PostgreSQL] BASIC - CUBE  (0) 2021.09.03
[PostgreSQL] BASIC - Grouping Sets  (0) 2021.09.03
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기