자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

는는·2023년 3월 23일
0

SQL - 문제 풀이

목록 보기
46/77

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

https://school.programmers.co.kr/learn/courses/30/lessons/157340

2022년 10월 16일 기준! 대여중인 차와 대여가능한 데이터를 조회하는 문제입니다.

문제를 이해하는데 조금... 시간이 걸렸습니다ㅎㅎ

SELECT문에서 전체 데이터를 불러옵니다.

데이터를 보면 car_id 최신 데이터와 과거 데이터 모두 나옵니다.

case 문에서 BETWEEN A AND B 을 통해 2022년 10월 16일의 값을 가지는 데이터를 추출하고 max를 이용해서 가장 최근값을 가져옵니다.

  • BETWEEN A AND B
    START_DATE(A) 와 END_DATE(B) 라는 범위를 지정하여 a~b 사이의 값(2022-10-16) 을 가지는 데이터를 출력한다. 이때 a와 b의 값을 가지는 데이터들도 포함한다.

GROUP BY 절에서 car_id 기준으로 그룹으로 묶어줍니다.
마지막으로 car_id 내림차순으로 정렬해주면 정답입니다.

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

0개의 댓글