Data Story

데이터 사이언스, 쉽게 설명하기

Coding Test/SQL

프로그래머스 SQL Lv.3 [대여 기록이 존재하는 자동차 리스트 구하기]

_data 2023. 2. 16. 16:46

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

 

프로그래머스

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

programmers.co.kr

문제

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.

 

예시

-- 코드를 입력하세요
SELECT distinct c.car_id
from car_rental_company_car c
left join car_rental_company_rental_history h on c.car_id = h.car_id
where car_type="세단"
and start_date between "2022-10-01" and "2022-10-31"
order by c.car_id desc

해설

- 먼저, 자동차 종류가 있는 테이블과 대여를 시작한 기록이 있는 테이블은 각각 다르기 때문에 left join을 사용한다.

두 테이블을 병합한 이후,  자동차 타입이 "세단"인 것을 조건걸고, 대여를 시작한 기록이 10월인 것들을 추출하면 된다.

(테이블 명 뒤에 있는 c 또는 h는 company와 history를 줄인 말이고, alias를 생략할 수 있기 때문에 생략하였다.)