반응형
반응형
문제
CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.
구조
CAR_RENTAL_COMPANY_CAR 테이블 : CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블 : HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다.
예시
처음에 작성한 쿼리
select
crh.car_id
from (
select
car_id
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where to_char(start_date, 'mm') = '10'
group by car_id
) crh
join CAR_RENTAL_COMPANY_CAR cc on cc.car_id = crh.car_id
order by car_id desc
틀린 이유
전반적으로 잘 작성되었으나 문제에서 말한 세단이라는 조건을 주지 않았습니다. 세단만 나오는 것이 아닌 모든 차종이 나와서 요구조건에 적합하지 않은 쿼리가 됐습니다.
수정한 쿼리
select
crh.car_id
from (
select
car_id
from CAR_RENTAL_COMPANY_RENTAL_HISTORY
where to_char(start_date, 'mm') = '10'
group by car_id
) crh
join CAR_RENTAL_COMPANY_CAR cc on cc.car_id = crh.car_id
where cc.car_type = '세단'
order by car_id desc
세단이라는 조건을 줘서 모든 요구조건을 만족하는 쿼리가 완성되었습니다.
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/157341
반응형
'코딩테스트 > Oracle DB' 카테고리의 다른 글
[Oracle] 프로그래머스 : 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.01.29 |
---|---|
[Oracle] 프로그래머스 : 조건에 맞는 사용자 정보 조회하기 (0) | 2024.01.29 |
[Oracle] 프로그래머스 : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2024.01.23 |
[Oracle] 프로그래머스 : 최솟값 구하기 (0) | 2024.01.22 |
[Oracle] 프로그래머스 : 고양이와 개는 몇 마리 있을까 (0) | 2024.01.22 |