본문 바로가기
Stay Hungry Stay Foolish/SQL

[MYSQL] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

by HANNI하니 2023. 6. 19.

사용 언어 - MYSQL

프로그래머스 LV 3) 자동차 대여 기록중에서 대여중 / 대여 가능 여부 구분하기

 

프로그래머스

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

programmers.co.kr

 

 

 

정답

CASE WHEN ~ IN (조건) (정답 맞춘 여부 O) 

1) 새 변수 AVAILABILITY 만들기

(CASE WHEN CAR_ID IN(~~) = CAR_ID가 START_DATE와 END_DATE 사이에 있다는 조건

THEN 만족시, 대여중

ELSE 만족하지 못하면, 대여 가능

END)

2) GROUP BY CAR_ID로 그루핑

3) CAR_ID로 내림차순 정렬

SELECT CAR_ID,
(CASE WHEN CAR_ID IN (
    SELECT CAR_ID
    FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE '2022-10-16' BETWEEN DATE_FORMAT(START_DATE, '%Y-%m-%d') AND DATE_FORMAT(END_DATE, '%Y-%m-%d'))
THEN '대여중'
ELSE '대여 가능'
END) AS 'AVAILABILITY'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC

 

 

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글