반응형
풀이 (MySQL)
대여 기간이 평균 7일 이상인 자동차의 ID와 그 평균 기간을 조회해야 한다.
DATE 타입의 두 날짜의 차이를 구해야 하므로 DATEDIFF 함수를 사용했다.
AVERAGE_DURATION이 7일 이상인 조건을 적어야 할 때, WHERE이 아닌 HAVING을 사용해야 함을 주의해야 한다.
관련 포스팅은 아래에 기재되어 있다.
주의해야 할 것은, 당일에 빌려 당일 반환한 것도 하루로 치므로 대여 기간을 구할 때 +1을 해야 한다는 점이다.
SELECT
CAR_ID
, ROUND(SUM(DATEDIFF(END_DATE, START_DATE)) / COUNT(HISTORY_ID),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
반응형
'SQL 쿼리 연습 > String, Date' 카테고리의 다른 글
[Lv.2 / 프로그래머스 / SQL] DATETIME에서 DATE로 형 변환 (0) | 2023.04.04 |
---|---|
[Lv.2 / 프로그래머스 / SQL] 중성화 여부 파악하기 (0) | 2023.03.27 |
[Lv.2 / 프로그래머스 / SQL] 이름에 el이 들어가는 동물 찾기 (0) | 2023.03.19 |
[Lv.2 / 프로그래머스 / SQL] 루시와 엘라 찾기 (0) | 2023.03.09 |
[Lv.1 / 프로그래머스 / SQL] 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.02.12 |