데이터사이언스 기록기📚

[프로그래머스/SQL] Level 4_특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(JOIN) 본문

Coding Test/프로그래머스(SQL)

[프로그래머스/SQL] Level 4_특정 기간동안 대여 가능한 자동차들의 대여비용 구하기(JOIN)

syunze 2023. 10. 27. 17:31

📌문제 유형

JOIN

 

📌문제

 

프로그래머스

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

programmers.co.kr

 

📌다른 사람의 문제풀이

SELECT DISTINCT CAR.CAR_ID, CAR.CAR_TYPE, FLOOR(CAR.DAILY_FEE*(1 - (SUBSTRING_INDEX(PLAN.DISCOUNT_RATE, '%', 1))*0.01)*30) AS FEE

FROM CAR_RENTAL_COMPANY_CAR AS CAR
JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY AS HISTORY ON CAR.CAR_ID = HISTORY.CAR_ID
JOIN CAR_RENTAL_COMPANY_DISCOUNT_PLAN AS PLAN ON PLAN.CAR_TYPE = CAR.CAR_TYPE

WHERE CAR.CAR_TYPE IN ('세단', 'SUV') 
AND CAR.CAR_ID NOT IN (SELECT CAR_ID 
                   FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
                   WHERE START_DATE <= '2022-11-01' AND END_DATE >= '2022-11-01') AND PLAN.DURATION_TYPE = '30일 이상'

HAVING FEE BETWEEN 500000 AND 2000000-1

ORDER BY FEE DESC, CAR_TYPE ASC, CAR_ID DESC;

 

📌리뷰

- SUBSTRING_INDEX : SUBSTRING_INDEX(문자열, 구분자, 구분자 인덱스) - 인덱스 전까지 출력

 

MySQL 문자열 자르기 SUBSTRING, SUBSTRING_INDEX

MySql, Mariadb의 SUBSTRING, SUBSTRING_INDEX 문자열 자르기 함수에 대해 알아보겠습니다. 추가로 SUBSTRING_INDEX를 활용하여 JAVA의 split처럼 문장열로 자르고 Index에 맞게 가져오는 방법을 설명하겠습니다. SUBS

leeys.tistory.com

- 대여 가능한 기간은 서브쿼리 활용하기

728x90
Comments