문제 : 

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

 

해결 방식 : 

-- 자동차 id 리스트(NO중복) >> GROUP BY 
-- 자동차 종류가 '세단'인 자동차 >> WHERE = '세단'
-- 10월에 대여 시작한 기록 >> WHERE MONTH = 10
-- CAR_ID 내림차순 

 

결과 : 정답

 

답안 : 

SELECT CH.CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY AS CH
   LEFT JOIN CAR_RENTAL_COMPANY_CAR AS CC ON CH.CAR_ID = CC.CAR_ID 
WHERE MONTH(CH.START_DATE) = 10
     AND CC.CAR_TYPE = '세단'
GROUP BY 1     
ORDER BY 1 DESC

 

 

다른 풀이법 : 

1. 세단 찾기

  -  CAR_TYPE IN ('세단')

  -  SELECT DISTINCT(CC.CAR_ID)

 

2. 10월 

  - DATE_FORMAT(START_DATE, '%Y-%m-%d') like '2022-10%'

  - START_DATE LIKE '2022-10%'

 

인사이트 : 

날짜 찾기 문제는 자주 나오는데 상황별로 효율적인 방법을 찾아야 겠다. 

+ Recent posts