반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
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
SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATION
- CAR_ID: 렌트한 차량의 고유 식별자를 조회합니다.
- DATEDIFF(END_DATE, START_DATE):
- 차량 렌트의 **종료일(END_DATE)**과 시작일(START_DATE) 사이의 일 수 차이를 계산합니다.
- +1: 시작일과 종료일 모두 포함하여 대여 기간을 계산합니다.
- AVG(...): 각 차량의 평균 대여 기간을 구합니다.
- ROUND(..., 1): 평균 값을 소수점 첫째 자리까지 반올림합니다.
- AS AVERAGE_DURATION: 결과 열 이름을 **AVERAGE_DURATION**으로 표시합니다.
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
- 이 데이터를 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 가져옵니다.
GROUP BY CAR_ID
- 차량 ID(CAR_ID)별로 그룹화하여 각 차량의 평균 대여 기간을 계산합니다.
HAVING AVERAGE_DURATION >= 7
- 평균 대여 기간이 7일 이상인 차량만 조회합니다.
- HAVING은 GROUP BY로 그룹화한 데이터에 조건을 걸 때 사용합니다.
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
- AVERAGE_DURATION(평균 대여 기간)이 높은 순(내림차순)으로 정렬합니다.
- 만약 평균 대여 기간이 같을 경우, **CAR_ID**를 내림차순으로 정렬합니다.
반응형
LIST
'알고리즘 문제 > 프로그래머스' 카테고리의 다른 글
프로그래머스 재구매가 일어난 상품과 회원 리스트 구하기 [Lv. 2] (MySQL) (0) | 2024.11.01 |
---|---|
프로그래머스 조이스틱 [Lv. 2] (C++) (0) | 2024.11.01 |
프로그래머스 분기별 분화된 대장균의 개체 수 구하기 [Lv. 2] (MySQL) (0) | 2024.10.28 |
해커랭크 Matrix Layer Rotation (0) | 2024.10.26 |
프로그래머스 석유 시츄 [Lv. 2] (C++) (0) | 2024.10.25 |