반응형

문제
평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간 리스트를 출력하는 SQL문을 작성
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
요구 사항 확인
자동차 아이디와 평균 대여 기간만 조회
대여 기간을 구하기 위해 대여 종료일(END_DATE)와 대여 시작일(START_DATE)의 차이를 구함
DATEDIFF(END_DATE, START_DATE)를 일 단위의 차이를 구하고 +1은 실제 사용일을 맞춰 조회
대여기간의 평균(AVG())을 구하고 소수점 2번째 자리에서 반올림(ROUND())하여 소수점 첫번째 자리까지 표시
= AVERAGE_DURATION 별칭 지정
평균 대여 기간(AVERAGE_DURATION)이 7일 이상인 경우만 조회
ORDER BY 내림차순(AVERAGE_DURATION), 만약 평균 대여 기간이 동일하다면 내림차순(CAR_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 AVERAGE_DURATION >= 7 order by AVERAGE_DURATION desc, CAR_ID desc;

이와 비슷한 SQL 문제를 풀어보고 싶다면
프로그래머스에서 풀어볼 수 있습니다.
https://school.programmers.co.kr/
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
반응형
'코딩 테스트 > 프로그래머스_MySQL' 카테고리의 다른 글
[프로그래머스] MySQL_조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기(String, Date) (0) | 2025.03.20 |
---|---|
[프로그래머스] MySQL_자동차 대여 기록에서 장기/단기 대여 구분하기(String, Date) (0) | 2025.03.19 |
[프로그래머스] MySQL_서울에 위치한 식당 목록 출력하기(SELECT) (0) | 2025.03.18 |
[프로그래머스] MySQL_자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(GROUP BY) (0) | 2025.03.18 |
[프로그래머스] MySQL_재구매가 일어난 상품과 회원 리스트 구하기(SELECT) (0) | 2025.03.16 |