문제
풀이
(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
'📊 Algorithm&SQL' 카테고리의 다른 글
[MySQL/프로그래머스] 식품분류별 가장 비싼 식품의 정보 조회하기 (1) | 2023.05.11 |
---|---|
[MySQL/프로그래머스] 보호소에서 중성화한 동물 (0) | 2023.05.09 |
[MySQL/프로그래머스] 없어진 기록 찾기 (0) | 2023.05.03 |
[MySQL/프로그래머스] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2023.04.30 |
[MySQL/프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2023.04.29 |