데이터 처리 도구/SQL 연습 기록

DAY 43 / [프로그래머스] SQL 연습문제 3개 풀기

yourhm 2025. 7. 21. 12:15

1. 자동차 평균 대여 기간 구하기 (난이도 2)

2. 조건에 부합하는 중고거래 상태 조회하기 (난이도 2)

3. 조건에 맞는 아이템들의 가격의 총합 구하기 (난이도 2)

 


자동차 평균 대여 기간 구하기

SELECT CAR_ID
     , ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

 

- 순간 DATEDIFF 함수 생각이 안났다.

- DATEDIFF 함수는 날짜간 차이를 일 단위로 계산하여 반환한다.

- DATEDIFF 함수는 MySQL 함수여서 postgreSQL에서는 - 빼기 연산자를 사용해서 일 단위 차이를 구해야 한다.

- DATEDIFF 함수로 두 날짜간 차이는 기간을 그대로 나타내지 않는다.

예를 들어 start date가 1/1, end date가 1/7이라면 ⇒ 1/7 - 1/1 = 6 days 가 된다. 근데 1/1부터 1/7까지의 기간은 총 7일이다. 그래서 기간을 구할 때는 DATEDIFF 함수 결과에 + 1을 해줘야 한다.