Post

[Programmers] #157340 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 [MySQL]

[Programmers] #157340 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 [MySQL]

문제 링크


1. 아이디어

2022-10-16 시점에 대여중이면 '대여중', 아니면 '대여 가능'을 AVAILABILITY로 붙여 자동차별로 CAR_ID 내림차순으로 조회하는 문제다. 한 자동차의 기록이 여러 건이라 GROUP BY CAR_ID로 묶고, START_DATE <= '2022-10-16'이면서 END_DATE >= '2022-10-16'인 기록이 하나라도 있으면 대여중으로 판정했다. 날짜 조건을 WHERE에 두면 그 날짜에 기록이 없는 자동차가 결과에서 빠지므로, 모든 자동차를 남긴 채 집계 안에서 판정했다.


2. 쿼리

풀이 [MySQL]

1
2
3
4
5
6
SELECT
    CAR_ID,
    IF(SUM(START_DATE <= '2022-10-16' AND END_DATE >= '2022-10-16') > 0, '대여중', '대여 가능') AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC

This post is licensed under CC BY 4.0 by the author.