[SQL문제풀기] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

silver's avatar
Jan 02, 2025
[SQL문제풀기] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

문제

MYSQL

내가 작성한 정답

WITH A AS ( SELECT CAR_ID, CASE WHEN START_DATE <= '2022-10-16' AND END_DATE >= '2022-10-16' THEN '대여중' ELSE '대여 가능' END AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY ) SELECT CAR_ID, MAX(AVAILABILITY) FROM A GROUP BY CAR_ID ORDER BY CAR_ID DESC

다른 사람들이 작성한 정답

SELECT CAR_ID , CASE WHEN MAX('2022-10-16' BETWEEN START_DATE AND END_DATE) = 1 THEN '대여중' ELSE '대여 가능' END AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY GROUP BY CAR_ID ORDER BY CAR_ID DESC
💡
집계함수 MAX()안에 연산자를 넣으면 연산이 참이라면 1을 출력하고 거짓이라면 0을 출력

ORACLE

내가 작성한 정답

WITH A AS ( SELECT CAR_ID, CASE WHEN TO_CHAR(START_DATE,'YYMMDD') <= '221016' AND TO_CHAR(END_DATE,'YYMMDD') >= '221016' THEN '대여중' ELSE '대여 가능' END AS AVAILABILITY FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY ) SELECT CAR_ID, MAX(AVAILABILITY) FROM A GROUP BY CAR_ID ORDER BY CAR_ID DESC
 
💡
글자에서도 max와 min 비교 가능하다!
order by asc순으로 min → max (desc)로 생각하면 간단하다.
 
Share article

silver