본문 바로가기

코딩테스트 연습/programmers

[프로그래머스] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 - MYSQL

 

SELECT 
    CAR_ID,
    CASE WHEN
     CAR_ID IN (SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE '2022-10-16' BETWEEN START_DATE
               AND END_DATE)
        THEN '대여중'
        ELSE '대여 가능'
    END
     AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC;

 

 

CAR_ID 하나에 대해 여러 대여기록이 존재할 수 있는데,

만약 기록 중 하나라도 '2022-10-16' 일이 포함 되면 '대여중' 이라고 출력해야한다.

 

CAR_ID 를 GROUP BY 로 묶고,

CASE WHEN 조건과 IN 을 사용해서 CAR_ID 중 하나라도  '2022-10-16' 일이 포함 되면 '대여중' 이라고 출력했다.