https://school.programmers.co.kr/learn/courses/30/lessons/157342
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
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 ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) > 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
- DATE_DIFF(날짜1, 날짜2)를 통해 기간 계산 후 당일날 포함해야 하므로, +1 추가
- CAR_ID를 통해 그룹화 진행
- HAVING 절을 통해, 평균 대여 기간이 7일 이상인 경우만 추출
- 컬럼명 AVERAGE_DURATION으로 지정
- ORDER BY 를 통해 평균 대여 기간 내림차순, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순
'SQL' 카테고리의 다른 글
[MYSQL] 프로그래머스(LEVEL 3) - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.02.16 |
---|---|
[MYSQL] 프로그래머스(LEVEL 2) - 노선별 평균 역 사이 거리 조회하기 (0) | 2025.02.15 |
[MYSQL] 프로그래머스(LEVEL 4) - 서울에 위치한 식당 목록 출력하기 (0) | 2025.02.12 |
[MYSQL] 프로그래머스(LEVEL 4) - 서울에 위치한 식당 목록 출력하기 (0) | 2025.02.11 |
[MYSQL] 프로그래머스(LEVEL 3) - 조건에 맞는 사용자 정보 조회하기 (1) | 2025.02.05 |