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

2024. 6. 9. 18:59·PS/SQL

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

 

프로그래머스

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

programmers.co.kr


문제 설명

  • Lv 2 문제
  • 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명:AVERAGE_DURATION) 리스트를 출력
  • 평균 대여 기간은 소수점 두번째 자리에서 반올림
  • 결과는 평균 대여 기간을 기준으로 내림차순 정렬, 평균 대여 기간이 같으면 자동차 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 AVG(DATEDIFF(END_DATE, START_DATE)+1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;

 

◼️ CAR_ID 칼럼으로 그룹화

    -  CAR_ID 칼럼으로 그룹화한 후, CAR_ID(자동차 대여 기록 ID)별로 평균 대여 기간이 7일 이상인 그룹만 추출

    -  이 때, DATEDIFF 함수로 두 날짜 간의 차이를 구한다.

    -  (두 날짜 간 차이) + 1 을 해줘야 총 대여기간이 된다.
       (ex. 시작일이 2024-06-09, 종료일이 2024-06-09이면 총 대여기간은 1일)

    -  AVG 함수로 대여 기간의 평균을 구한다.

 

◼️ ROUND 함수로 AVERAGE_DURATION(평균 대여 기간)을 소수점 두 번째 자리에서 반올림

 

◼️ ORDER BY 로 평균 대여 기간 기준 내림차순, 자동차 ID 기준 내림차순으로 정렬

 

 

 

 

✔️실패한 풀이

이렇게 하면 평균 대여 기간이 아닌 그냥 대여 기간이 7일 이상인 자동차 대여 기록 정보를 가지고,  자동차 대여 기록 ID 별 평균 대여 기간을 출력하게 된다.

SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE)+1),1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATEDIFF(END_DATE, START_DATE)+1 >= 7
GROUP BY CAR_ID
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;

 

또한 처음에 두 날짜 간의 차이를 구하기 위해서 END_DATE - START_DATE 를 했었는데,  날짜가 아닌 하나의 숫자로 인식을 하고 계산이 되는 것 같다.

저작자표시 비영리 변경금지 (새창열림)

'PS > SQL' 카테고리의 다른 글

[프로그래머스][SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기  (0) 2024.06.18
[프로그래머스][SQL] 조건에 부합하는 중고거래 상태 조회하기  (0) 2024.06.18
[프로그래머스][SQL]업그레이드 할 수 없는 아이템 구하기  (0) 2024.06.11
[프로그래머스][SQL] 조건에 맞는 사용자 정보 조회하기  (0) 2024.06.10
[프로그래머스][SQL] 프로그래머스 SQL 문제 풀이 (1)  (0) 2024.06.04
'PS/SQL' 카테고리의 다른 글
  • [프로그래머스][SQL] 조건에 부합하는 중고거래 상태 조회하기
  • [프로그래머스][SQL]업그레이드 할 수 없는 아이템 구하기
  • [프로그래머스][SQL] 조건에 맞는 사용자 정보 조회하기
  • [프로그래머스][SQL] 프로그래머스 SQL 문제 풀이 (1)
nyrimmm
nyrimmm
  • nyrimmm
    개발기록
    nyrimmm
  • 전체
    오늘
    어제
  • 글쓰기 관리
    • 분류 전체보기 (71) N
      • Java (6)
      • Spring & SpringBoot (3)
      • Network (1)
      • DataBase (0)
      • SQL (1)
      • IntelliJ (3)
      • Git (0)
      • 자료구조 & 알고리즘 (2)
      • 트러블 슈팅 (1)
        • Spring (1)
      • PS (53) N
        • 백준 (12)
        • 프로그래머스 (0)
        • SQL (9)
        • 이코테 (32) N
      • 후기 & 회고 (1)
  • 태그

  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
nyrimmm
[프로그래머스][SQL] 자동차 평균 대여 기간 구하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.