INTERVAL 계산
실제 DVD 대여점을 운영한다면, 현재 고객에게 대여 중인 영화 제목이 무엇인지 파악해야 할 때가 있을 거예요. 이전 연습 문제에서 결과에 return_date가 NULL인 레코드가 일부 있었죠. 이는 해당 대여가 아직 반납되지 않았기 때문입니다.
film 테이블의 각 대여에는 rental_duration 열이 있으며, 이는 고객이 연체로 간주되기 전까지 DVD를 대여할 수 있는 일수(날짜 수)를 나타냅니다. 이 예제에서는 return_date가 NULL인 영화를 제외하고, rental_duration을 INTERVAL 유형으로 변환해 보겠습니다. 이 변환을 수행하는 한 가지 방법을 다시 보여 드립니다.
SELECT INTERVAL '1' day * timestamp '2019-04-10 12:34:56'
이 연습은 강의의 일부입니다
PostgreSQL에서 데이터 조작을 위한 함수
연습 안내
rental_duration에 1일짜리INTERVAL을 곱해 변환하세요.days_rented를 계산하기 위해return_date에서rental_date를 빼세요.return_date가NULL인 대여는 제외하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
f.title,
-- Convert the rental_duration to an interval
___ '1' ___ * ___.___,
-- Calculate the days rented as we did previously
r.return_date - ___.___ AS days_rented
FROM film AS f
INNER JOIN inventory AS i ON f.film_id = i.film_id
INNER JOIN rental AS r ON i.inventory_id = r.inventory_id
-- Filter the query to exclude outstanding rentals
WHERE r.return_date ___ ___ ___
ORDER BY f.title;