본문 바로가기

프로그래머스

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

728x90
반응형
SMALL


자동차 대여 기록에서 장기/단기 대여 구분하기


 



문제 출처

코딩테스트 연습 - 자동차 대여 기록에서 장기/단기 대여 구분하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

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를 사용하여 코드를 좀더 보기쉽게 만들었다.

 

 

 

 

 

티스토리와 깃허브 홈
 

학스의 개발일지

안녕하세요 일상과 코딩공부를 올리고 있는 JAVA개발자 학스입니다. 저는 주로 JAVA, jQuery, PostgreSQL, HIVE을 다루고 있고 코딩테스트공부도 병행중입니다. 제 깃허브 주소인 https://github.com/hacs2772에

hacs2772.tistory.com

 

 

hacs2772 - Overview

개발왕 학스. hacs2772 has 8 repositories available. Follow their code on GitHub.

github.com

 

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

728x90
반응형
LIST