문제가 원하는 것을 정리하면
1. 자동차 종류가 "세단"이어야 하며
2. 10월에 대여를 시작한 기록이 있는차
3. 자동차 ID 중복을 제거한다.
위 테이블을 보고 하나씩 해결하도록 하겠다.
먼저 1. 자동차 종류가 "세단"을 찾는 sql은 WHERE절을 사용하면 찾을 수 있을 것이다.
WHERE A.CAR_TYPE = '세단'
그다음 2. 10월에 대여를 시작한 기록이 있는차를 알기 위해서는 역시 WHERE절을 사용하면 되는데 먼저 서로다른 테이블을 같이 조회해야 하기 때문에 JOIN을 사용하는데 두테이블에 데이터가 모두 존재하는 데이터 임으로 INNER JOIN을 사용하여 조회 하며, 두 테이블의 공유값인 CAR_ID를 사용하여 JOIN하면 된다.
FROM CAR_RENTAL_COMPANY_CAR A INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY B ON A.CAR_ID = B.CAR_ID
WHERE B.START_DATE BETWEEN '2022-10-01' AND '2022-10-31'
마지막으로 3. 자동차 ID 중복을 제거하는것은 SELECT 문에 DISTINCT를 사용하면 중복을 제거한 데이터 행들을 추출해준다.
SELECT DISTINCT A.CAR_ID
이를 합치면
SELECT DISTINCT A.CAR_ID
FROM CAR_RENTAL_COMPANY_CAR A INNER JOIN CAR_RENTAL_COMPANY_RENTAL_HISTORY B ON A.CAR_ID = B.CAR_ID
WHERE A.CAR_TYPE = '세단' AND B.START_DATE BETWEEN '2022-10-01' AND '2022-10-31'
ORDER BY A.CAR_ID DESC;
위 와 같은 sql문이 만들어 질것이다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 조건에 맞는 사용자 정보 조회하기 (0) | 2023.09.06 |
---|---|
프로그래머스 없어진 기록 찾기 (0) | 2023.09.06 |
프로그래머스 즐겨찾기가 가장 많은 식당 정보 출력하기 (2) | 2023.09.04 |
프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.09.04 |
프로그래머스 조건별로 분류하여 주문상태 출력하기 (0) | 2023.09.04 |