IT/SQL

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

무지개는 환상 2024. 1. 23. 21:48

<CAR_RENTAL_COMPANY_RENTAL_HISTORY> 테이블 구조

CAR_RENTAL_COMPANY_RENTAL_HISTORY

 

<문제>

 

 

 

<문제 풀이>

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

 

처음에는 간단하게 SELECT 절에 CASE-WHEN-ELSE 절을 사용하여 풀이하는 문제인줄 알았다.

하지만 오답으로 나와 다른 글들을 확인해보니 CASE 절에 MAX() 함수를 사용해야 했다..

왜냐하면 CAR_ID 값들 중 가장 최신 값들로만 비교해야 하기 때문!

풀수록 재밌고 신기한 쿼리 문제들이었다! 좀 더 기초 공부를 더 열심히해야 겠다고 느꼈다.

 

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