728x90
⬛ 프로그래머스 | LV.2 자동차 평균 대여 기간 구하기 (MySQL)
https://school.programmers.co.kr/learn/courses/30/lessons/157342
💚문제 접근 방식
1) 날짜 차이 구하고 CAR_ID 기준으로 그룹핑 한 뒤, 추출한 값의 일수가 7일 이상인 경우만 추출한다.
→ 이때 DATEDIFF(날짜1, 날짜2) 를 활용할 건데, 날짜 차이 + 1을 해줘야 정상 답이 나온다.
🎈 DATEDIFF(ENDDATE, STARTDATE)+1 에서 +1값을 하는 이유 : 렌트 기간 구할 때 렌트 시작 날짜도 포함하기 떄문에 두 기간 차이값에서 +1 까지 처리해줘야 정확한 처리가 된다.
2) 추출한 애들의 평균은 AVG()함수로 구할 거고, 소수점 반올림자리 지정해준다.
AVG(A, 1) ← 이거는 A에 대해 소수점 둘째 자리에서 반올림하여 첫째 차리까지 보이도록 지정한 거다.
3) ORDER BY 내림차순 DESC 정렬한다.
💚 제출 코드
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;
💚 배운 점
AVG( ) 는 특정 필드 값들의 평균값을 계산해주는 함수
ROUNT( ) 는 특정 필드 값을 반올림해주는 함수
DATEDIFF(A,B)는 일 차이 가져올 때 활용하는 함수
728x90
'코딩 테스트 [준비] > [문풀] 프로그래머스_문풀_조지기' 카테고리의 다른 글
프로그래머스 | LV.2 무인도 여행 - DFS or BFS 문풀 (Java) (0) | 2024.03.09 |
---|---|
프로그래머스 (Dev-Matching 기출) | LV.3 다단계 칫솔 판매 - DFS 재귀 문풀 (Java) (31) | 2024.03.06 |
프로그래머스(카카오) | LV.2 두 큐 합 같게 만들기 - 큐(Queue) 활용 문풀 (Java) (2) | 2024.03.06 |
프로그래머스 (카카오) | LV. 2 k진수에서 소수 개수 구하기 - 단순 구현 문풀 (Java) (31) | 2024.03.06 |
프로그래머스 | LV.2 조건에 부합하는 중고거래 상태 조회하기 (MySQL) (1) | 2024.03.02 |