https://school.programmers.co.kr/learn/courses/30/lessons/157342
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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 AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
1. CAR_ID, AVERAGE_DURATION 조회
2. AVERAGE_ DURATION 계산
- CAR_ID로 그룹화하기c. 날짜 차의 평균
- 소수점 둘째 자리에서 반올림
- 종료 날짜와 시작 날짜의 차이 계산
3. AVERAGE_DURATION이 7일 이상인 경우만 추출
4. AVERAGE_DURTAION, CAR_ID로 내림차순 정렬
'알고리즘·코딩테스트 > SQL' 카테고리의 다른 글
[프로그래머스/SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (2) | 2023.10.20 |
---|---|
[프로그래머스/SQL] 대여 기록이 존재하는 자동차 리스트 구하기 (2) | 2023.10.18 |
[프로그래머스/SQL] 특정 옵션이 포함된 자동차 리스트 구하기 (0) | 2023.09.24 |
[프로그래머스/SQL] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2023.09.23 |
[프로그래머스/SQL] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2023.09.22 |