SQL

[SQL/STRING, DATE] 자동차 평균 대여 기간 구하기 - 프로그래머스

되다 2024. 2. 13. 13:57

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/157342

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


  • 문제
  • 소요시간: 16분 40초


  • 설계하기(접근방법) 

1. 요구 사항 정리

1) 자동차별로 카테고리화(그룹)

2) 자동차별 대여 평균 구하고 7일 이상만 출력

 

 

2. 출력

 

컬럼

1) CAR_ID

2) AVERAGE_DUARITON 

 

추가 처리

1) AVERAGE_DURATION 내림차순

2) 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 ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1),1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC

  • 얻어갈 부분

1. GROUP BY 로 처리한 쿼리에 대해서 조건을 적용하고 싶으면 HAVING 절을 사용하면 된다

2. DATEDIFF를 사용하고 문제의 날짜 차이가 + 1을 해줘야 하는 경우 같이 넣어주어야 조건에 만족할 수 있다.