문제
입력 코드
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 을 해야 함
DATEDIFF(구분자, start_date, end_date) 함수
- 구분자는 어떤 차이를 구할지 정하는 역할 (일, 월, 분기, 연 등)
- int형으로 반환하기 때문에 int 범위를 넘는 차이는 구하지 못함
코드 설명
#SELECT #ROUND #AVG #DATEDIFF #GROUP BY #HAVING #ORDER BY
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/157342
'SQL' 카테고리의 다른 글
#43. STRING, DATE : 루시와 엘라 찾기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.10 |
---|---|
#42. STRING, DATE : 조건에 부합하는 중고거래 상태 조회하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.10 |
#40. JOIN : 상품 별 오프라인 매출 구하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.09 |
#39. JOIN : 조건에 맞는 도서와 저자 리스트 출력하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.08 |
#38. IS NULL : NULL 처리하기 | 프로그래머스 | SQL 고득점 Kit (0) | 2023.08.08 |