📊 Algorithm&SQL

[MySQL/프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기

오늘 ONEUL 2023. 5. 7. 22:07

 

문제

 

 

 

풀이

(1) 문제 분석하기

  • 대여 시작일이 2022년 9월에 속하는 대여 기록
    ⇒ WHERE 대여 시작일 LIKE '2022-09-%'
  • 대여 기간 30일 이상이면 '장기 대여' 아니면 '단기 대여' (컬럼명 : RENT_TYPE)
    ⇒ CASE 문 이용하여 출력, 이때 대여 기간은 빌린 날 부터 1일 이므로 +1하여 계산
    ⇒ AS 'RENT_TYPE
  • 대여 기록 ID 기준으로 내림차순 정렬
    ⇒ ORDER BY 대여 기록 ID DESC

 

(2) 쿼리 구현하기

SELECT HISTORY_ID
    , CAR_ID
    , DATE_FORMAT(START_DATE, '%Y-%m-%d') AS 'START_DATE'
    , DATE_FORMAT(END_DATE, '%Y-%m-%d') AS 'END_DATE'
    ,
CASE
    WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '장기 대여'
    # 대여는 빌린 날 부터 1일이므로 +1 해주어야 함
    ELSE '단기 대여'
END AS 'RENT_TYPE'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09-%'
ORDER BY HISTORY_ID DESC

 

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr