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 |
최근댓글