노력에는 지름길이 없으니까요

프로그래머스 - 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 본문

SQL/프로그래머스

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

데건 2024. 8. 1. 10:11
728x90

 

해결일 언어 레벨 테스트명
20240801 SQL level 3  자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

 

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

 

 

중간 생략

 


 

내 코드

WITH TEST AS (SELECT CAR_ID
FROM    CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE '2022-10-16' BETWEEN START_DATE AND END_DATE
ORDER BY CAR_ID)

SELECT DISTINCT CAR_ID,
if (CAR_ID in (SELECT CAR_ID FROM TEST),
    '대여중','대여 가능') AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
ORDER BY CAR_ID DESC

 

개선점: (TABLE NAME) 이런 식으로 바로 뽑아내는 것도 가능함! 기억해두자.

 

 

베스트 코드

WITH AVAILABLE_CARS AS (
    SELECT
        CAR_ID
    FROM
        CAR_RENTAL_COMPANY_RENTAL_HISTORY
    WHERE
        "2022-10-16" BETWEEN START_DATE AND END_DATE
)
SELECT
    CAR_ID,
    IF (CAR_ID IN (TABLE AVAILABLE_CARS) , "대여중", "대여 가능") AS AVAILABILITY
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY
    CAR_ID
ORDER BY
    CAR_ID DESC

 

 

 

728x90
반응형