728x90
반응형
SMALL
자동차 대여 기록에서 장기/단기 대여 구분하기
문제 출처
코딩테스트 연습 - 자동차 대여 기록에서 장기/단기 대여 구분하기 | 프로그래머스 스쿨 (programmers.co.kr)
Code
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,
IF(DATEDIFF(END_DATE, START_DATE) >= 29, "장기 대여", "단기 대여") AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE MONTH(START_DATE) = 9
ORDER BY HISTORY_ID DESC
#CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서
#---> FROM에 올 테이블을 설명해주고있다.
#대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서
#---> 조건에대해 설명해주고있다.
#대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로
#---> SELECT에 올 조건에대해 설명해주고있다.
#표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성
#---> 에일리어스를 설명해주고있다.
#결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
#---> 정렬방법에대해 설명해주고있다.
Code설명 & TIPS
풀이 방법
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서
---> FROM에 올 테이블을 설명해주고있다.
대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서
---> 조건에대해 설명해주고있다.
대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로
---> SELECT에 올 조건에대해 설명해주고있다.
표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성
---> 에일리어스를 설명해주고있다.
결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
---> 정렬방법에대해 설명해주고있다.
설명
LEVEL1치고는 상당히 귀찮은 문제였다.
조건은 기존 LIKE를 이용해서 만들지 않고 MONTH를 이용하여 조건을 주었다(상관없다)
DATEDIFF를 통해 끝나는날과 시작날의 차를 구하였고
출력이 장기대여 아님 단기대여 이렇게 2가지만 나오면 되니
CASE를 사용하는것이하닌 IF를 사용하여 코드를 좀더 보기쉽게 만들었다.
티스토리와 깃허브 홈
오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
LIST
'프로그래머스' 카테고리의 다른 글
(MySQL / 프로그래머스) 우유와 요거트가 담긴 장바구니 (0) | 2023.11.07 |
---|---|
(MySQL / 프로그래머스) 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2023.10.25 |
(MySQL / 프로그래머스) 조건에 부합하는 중고거래 상태 조회하기 (0) | 2023.10.24 |
(MySQL / 프로그래머스) 가격대 별 상품 개수 구하기 (0) | 2023.10.05 |
(MySQL / 프로그래머스) 입양 시각 구하기(2) (0) | 2023.10.05 |