우당탕탕 개발일지
[SQL] 프로그래머스 String, Date : 자동차 평균 대여 기간 구하기(level 2) 본문
💡문제 링크
💡SQL 코드 설계
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
1. 평균 대여 기간이 7일 이상인 자동차(GROUP BY CAR_ID, WHERE)
2. 평균 대여 기간 리스트를 출력(DATEDIFF, AVG)
3. 평균 대여 기간은 소수점 두번째 자리에서 반올림
ROUND(숫자, 소수자릿수) AS 반올림된_값
4. 결과는 평균 대여 기간을 기준으로 내림차순 정렬, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬 (ORDER BY)
💡SQL 코드
-- 코드를 입력하세요
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. 순서가 WHERE - GROUP BY - HAVING이다! GROUP BY 뒤에 WHERE이 나올 수 없음
2. DATEDIFF은 두 날짜를 빼는 역할만 할 뿐, 두 날짜 사이의 기간은 1을 더해줘야 한다
3. ROUND(숫자, 소수자릿수) AS 반올림된 값
ROUND(0.22, 1) 하면 소수 둘째자리에서 반올림하여 0.2가 된다
'SQL' 카테고리의 다른 글
[SQL] 프로그래머스 Group By : 노선별 평균 역 사이 거리 조회하기 (level 3) (0) | 2024.03.02 |
---|---|
[SQL] 프로그래머스 String, Date : 대여 기록이 존재하는 자동차 리스트 구하기 (level 3) (1) | 2024.02.23 |
[SQL] 프로그래머스 String, Date : 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (level 3)⭐ (0) | 2024.02.22 |
[SQL] 프로그래머스 String, Date : 자동차 대여 기록에서 장기/단기 대여 구분하기(level 1) (0) | 2024.02.22 |
[SQL] 프로그래머스 SUM, MAX, MIN : 조건에 맞는 아이템들의 가격의 총합 구하기 (level 2) (0) | 2024.02.19 |