


일단 CAR_ID의 대여 평균일을 구해야 하기 때문에,
GROUP BY CAR_ID
로 각각의 CAR_ID에 해당하는 구룹 테이블을 만들어줬다.
그 후, 평균 7일 이상 인 자동차만 조회 되도록 해야하는데
처음에는 WHERE에
WHERE ROUND(AVG(DATEDIFF(SUBSTRING(END_DATE,1,11), SUBSTRING(START_DATE,1,11)) + 1),1) >= 7
로 구현했었다.
그런데, 오류가 나서 HAVING절로 옮겨주겨
HAVING ROUND(AVG(DATEDIFF(SUBSTRING(END_DATE,1,11), SUBSTRING(START_DATE,1,11)) + 1),1) >= 7
로 구현하니 정상 작동했다...
아마도, CAR_ID의 구룹 테이블이 만들어져야 하는 조건이
평균 7일 이상이라 WHERE 구문이 아닌 HAVING 구문에
적어야 했는 것 같다.
(아직 WHERE인지, HAVING에 적어야 하는 조건이 햇갈릴 때가 있다...)
제출한 코드 :
SELECT CAR_ID, ROUND(AVG(DATEDIFF(SUBSTRING(END_DATE,1,11), SUBSTRING(START_DATE,1,11)) + 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 문제' 카테고리의 다른 글
문제 65. 우유와 요거트가 담긴(난이도 10)(집합 연산자) (0) | 2024.07.30 |
---|---|
문제 64. 헤비 유저가 소유한 장소2021(난이도3) (0) | 2024.07.30 |
문제 62. 자동차 대여 기록에서 장기/단기(난이도 7)(날짜 차이 구하기) (0) | 2024.07.30 |
문제 61. 서울에 위치한 식당 목록(난이도 5) (0) | 2024.07.30 |
문제 60. 년, 월, 성별 별 상품 구매 회원 수 구하기(난이도 7) (0) | 2024.07.30 |