[SQL 문제 풀기] 자동차 대여 기록에서 장기/단기 대여 구분하기(151138)

lhs's avatar
Jan 27, 2025
[SQL 문제 풀기] 자동차 대여 기록에서 장기/단기 대여 구분하기(151138)
 

1. 문제 풀이 아이디어

  • CASE 문과 DATEDIFF를 사용해 대여 기간에 따라 대여 유형을 구분하여 문제를 해결한다.

2. 나의 정답 코드

SELECT history_id, car_id, date_format(start_date, '%Y-%m-%d'), date_format(end_date, '%Y-%m-%d'), CASE WHEN DATEDIFF(end_date, start_date) >= 29 THEN '장기 대여' ELSE '단기 대여' END rent_type FROM car_rental_company_rental_history WHERE start_date BETWEEN '2022-09-01' AND '2022-09-30' ORDER BY history_id DESC;

3. 정리

  • SELECT 절에서 필요한 열(history_id, car_id, 대여 시작일, 대여 종료일, 대여 유형)을 선택한다.
  • DATE_FORMAT 함수로 날짜 형식을 'YYYY-MM-DD'로 변환해 가독성을 높인다.
  • CASE 문을 사용해 대여 기간이 29일 이상이면 '장기 대여', 그렇지 않으면 '단기 대여'로 표시한다.
  • WHERE 절에서 start_date가 2022-09-01부터 2022-09-30까지의 데이터만 필터링한다.
  • ORDER BY 절로 history_id를 내림차순으로 정렬해 최신 기록이 먼저 나오도록 한다.
Share article

LHS's Study Space