개발바닥

자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 본문

[ Algorithm ]/[SQL]

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

라이언 2023. 3. 4. 19:44
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/157340

 

프로그래머스

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

programmers.co.kr

 

문제 요구 사항

 

2022년 10월 16일 대여 중인 자동차는 "대여중" 아니라면 "대여 가능" 으로 AVAILABILITY 컬럼을 새로 만들어서 자동차 ID 내림차순으로 자동차 ID 와 AVAILABILITY 컬럼을 출력하라

 

해결 방법

With 절을 사용하여 가상 테이블을 만든다.
가상 테이블에는 22년 10월 16일에 대여 중인 차에 대해서 AVAILABILITY 컬럼을 새로 만들어서 "대여중" 값을 넣는다.

기존 테이블과 가상 테이블을 car_id로 left join을 하고 group 으로 car_id를 묶는다.
그리고 AVAILABILITY 값이 비어있는 car_id에 대해서는 "대여 가능" 으로 값을 매긴다.

 

코드 

with table1 as (
    SELECT car_id,'대여중' as 'AVAILABILITY' from CAR_RENTAL_COMPANY_RENTAL_HISTORY where start_date <= '2022-10-16' and '2022-10-16' <= end_date
)

SELECT CRCRH.car_id, IFNULL(AVAILABILITY, "대여 가능") as 'AVAILABILITY'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS CRCRH
         LEFT OUTER JOIN table1 AS t1
                         ON CRCRH.car_id = t1.car_id group by CRCRH.car_id order by CRCRH.car_id desc;
반응형

'[ Algorithm ] > [SQL]' 카테고리의 다른 글

조건에 맞는 사용자 정보 조회하기  (0) 2023.03.12
Comments