728x90
1.자동차 평균 대여 기간 구하기
문제 설명
다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다.
문제
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 AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
- ROUND 함수:
- ROUND() 함수는 숫자를 반올림하는 데 사용된다.
- 일반적인 구문은 ROUND(expression, decimals)이며, expression은 반올림할 수, decimals은 소수점 이하 자릿수이다.
- 예를 들어, ROUND(12.345, 1)은 12.3으로 반올림한다.
- AVG 함수:
- AVG() 함수는 주어진 열의 평균값을 계산하는 데 사용된다.
- 일반적인 구문은 AVG(expression)이며, expression은 평균을 계산할 열이나 표현식이다.
- 예를 들어, AVG(column_name)은 특정 열의 값들의 평균을 반환한다.
- DATEDIFF 함수:
- DATEDIFF() 함수는 두 날짜 간의 차이를 계산하는 데 사용된다.
- 일반적인 구문은 DATEDIFF(unit, start_date, end_date)이며, unit은 날짜 차이의 단위(일, 주, 월 등), start_date와 end_date는 비교할 두 날짜이다.
- unit을 생략하면 기본적으로 일(day) 단위로 차이를 계산한다.
- 예를 들어, DATEDIFF(DAY, '2022-01-01', '2022-01-10')은 '2022-01-01'과 '2022-01-10' 사이의 일 수를 반환한다.
풀이 참고
[MYSQL] 자동차 평균 대여 기간 구하기 (프로그래머스/Level 2)
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설
suminii.tistory.com
728x90
'SQL > 프로그래머스 고득점 kit' 카테고리의 다른 글
[프로그래머스] SQL 고득점 kit(카테고리 별 도서 판매량 집계하기) (0) | 2024.01.29 |
---|---|
[프로그래머스] SQL 고득점 kit(자동차 대여 기록에서 장기/단기 대여 구분하기) (2) | 2024.01.28 |
[프로그래머스] SQL 고득점 kit(조건에 부합하는 중고거래 상태 조회하기) (0) | 2024.01.27 |
[프로그래머스] SQL 고득점 kit(재구매가 일어난 상품과 회원 리스트 구하기, 특정 옵션이 포함된 자동차 리스트 구하기) (0) | 2024.01.25 |
[프로그래머스] SQL 고득점 kit(루시와 엘라 찾기, 가격대 별 상품 개수 구하기) (0) | 2024.01.24 |