https://school.programmers.co.kr/learn/courses/30/lessons/157340
SELECT CAR_ID, IF(CAR_ID IN (SELECT DISTINCT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE END_DATE >= '2022-10-16'), '대여중', '대여 가능') AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
문제를 잘못 해석했고,
데이터 결함이 없다면 (START_DATE > END_DATE인 경우) END_DATE만 비교하면 될 것이라 판단했다.
START_DATE가 16일을 넘어가는 케이스가 반례였다.
수정
SELECT CAR_ID, IF(CAR_ID IN (SELECT DISTINCT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE <= '2022-10-16' AND END_DATE >= '2022-10-16'), '대여중', '대여 가능') AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC
'[프로그래머스] SQL > 오답 노트' 카테고리의 다른 글
[lv3] 대장균의 크기에 따라 분류하기 2 (0) | 2024.10.18 |
---|---|
[lv2] 자동차 평균 대여 기간 구하기 (1) | 2024.10.09 |
[lv3] 업그레이드 할 수 없는 아이템 구하기 (1) | 2024.10.05 |
[lv2] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2024.10.05 |
[lv3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.10.04 |