SQL 문제풀이
[프로그래머스 SQL] LV.3 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
냄비짱
2023. 8. 6. 01:32
728x90
❓ Question
❗ Answer
SELECT DISTINCT(car_id) CAR_ID
, IF(car_id IN (SELECT car_id
FROM car_rental_company_rental_history
WHERE '2022-10-16' BETWEEN start_date and end_date),
'대여중','대여 가능') AVAILABILITY
FROM car_rental_company_rental_history
ORDER BY CAR_ID DESC;
📌 Discussion
- 하나의 car_id에 대해 여러 렌탈 기록이 존재하여 대여 가능 여부가 여러가지가 나온다.
- 대여 중인 car_id의 레코드를 sub-query로 불러와서 IF 절로 하나의 car_id에 따른 대여 가능 여부를 출력한다.
- 중복되는 car_id를 제거하기 위해 distinct 사용