728x90
728x90
이번 문제는 프로그래머스의 Lv2문제인 자동차 평균 대여 기간 구하기이다.
이번 문제에서 내가 막힌 부분은 바로
날짜 간의 차이를 구하는 법!!!
처음에 작성했던 코드를 확인해 보자!
SELECT CAR_ID, ROUND(AVG(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;
그냥 END_DATE에서 START_DATE를 빼주면 그 차이가 계산될 거라 생각했다.
하지만 다른 결괏값이 나왔고, 이를 해결하기 위해서는 DATEDIFF 함수가 필요했다.
이 함수를 사용한 수정된 코드를 봐보자!
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;
이렇게 차이를 함수로 구해주고 1을 더해주면 끝!
나머지는 문제에 주어진 조건대로 구현하면 된다.
728x90
'SQL' 카테고리의 다른 글
노선별 평균 역 사이 거리 조회하기 (0) | 2024.10.23 |
---|---|
연도 별 평균 미세먼지 농도 조회하기 (0) | 2024.10.10 |
특정 단위별 컬럼 그룹화 하기 (1) | 2024.10.10 |
ORDER BY 컬럼 우선순위 설정 (0) | 2024.10.10 |
ORDER BY의 alias가 문자열 일 때 ( MySQL ) (0) | 2024.10.10 |