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 사용