코딩테스트 연습 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
스칼라 서브 쿼리에 대해 성능 개선을 위해 인라인 뷰와 JOIN하여 코드를 구성했다. '2022-10-16'에 속하는 CAR_ID가 있으면 1의 값을 써주었고, GROUP BY와 SUM을 통해 1 이상이면 '2022-10-16'에 속한 적이 있으므로 대여중을 출력해주었다.
SELECT E.CAR_ID, IF(SUM(A.VAL)>=1, '대여중', '대여 가능') AS AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY E LEFT OUTER JOIN (
SELECT Q.CAR_ID, 1 AS VAL
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY Q
WHERE '2022-10-16' BETWEEN DATE_FORMAT(Q.START_DATE,'%Y-%m-%d') AND DATE_FORMAT(Q.END_DATE,'%Y-%m-%d')
) A
ON E.CAR_ID = A.CAR_ID
GROUP BY E.CAR_ID
ORDER BY E.CAR_ID DESC
'코딩테스트 > MySQL' 카테고리의 다른 글
[프로그래머스 Level 3] 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기(MySQL) (0) | 2024.11.17 |
---|---|
[프로그래머스 Level 3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(MySQL) .Feat 날짜 비교 (0) | 2024.08.16 |
[프로그래머스 Level 3] 오랜 기간 보호한 동물(MySQL) .Feat GROUP BY (0) | 2024.07.12 |
[프로그래머스 Level 3] 오랜 기간 보호한 동물(MySQL) .Feat LEFT OUTER JOIN (0) | 2024.06.29 |
[프로그래머스 Level 2] 연도별 대장균 크기의 편차 구하기(MySQL) .Feat 스칼라 서브쿼리 성능 개선 (0) | 2024.06.26 |