https://school.programmers.co.kr/learn/courses/30/lessons/157340
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 해석
2022년 10월 16일에 대여 중인 자동차인 경우에는 대여중으로 표시하고 아니면 대여 가능이라고 표시한다.
문제 풀이
CAR_ID가 여러개여서 대여중인 CAR_ID가 있더라도 다른 날짜와 겹치면 대여 가능으로 출력되었다.
그래서 먼저 대여중인 테이블을 먼저 뽑아야겠다고 생각했고 해당 테이블과 LEFT JOIN을 하면 대여 가능한 CAR_ID도 같이 뽑을 수 있으니 해당 방식으로 풀어봤다.
SELECT
T.CAR_ID,
CASE
WHEN A.CAR_ID IS NOT NULL THEN '대여중'
ELSE '대여 가능'
END AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY T
LEFT JOIN (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE
) AS A
ON T.CAR_ID = A.CAR_ID
GROUP BY T.CAR_ID
ORDER BY T.CAR_ID DESC;
'코딩테스트 > SQL' 카테고리의 다른 글
[SQL Lv3] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2024.12.02 |
---|---|
[SQL Lv3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.11.26 |
[SQL Lv4] 입양 시각 구하기(2) (0) | 2024.11.26 |
[SQL Lv2] 입양 시각 구하기(1) (0) | 2024.11.26 |
[SQL Lv3] 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.11.26 |
댓글