IT/SQL
[MySQL] 프로그래머스 - 자동차 대여 기록에서 대여 중 / 대여 가능 여부 구분하기
무지개는 환상
2024. 1. 23. 21:48
<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 값들 중 가장 최신 값들로만 비교해야 하기 때문!
풀수록 재밌고 신기한 쿼리 문제들이었다! 좀 더 기초 공부를 더 열심히해야 겠다고 느꼈다.