_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (273)
    • 데이터 엔지니어링 (30)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 자동차 평균 대여 기간 구하기 MySQL
코딩테스트

[코딩테스트] 프로그래머스 자동차 평균 대여 기간 구하기 MySQL

2023. 2. 12. 13:57
반응형

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

 

프로그래머스

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

programmers.co.kr

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

먼저 GROUP BY에서 CAR_ID 컬럼을 기준으로 그룹화를 진행하고 HAVING문으로 조건을 걸어줍니다.

 

SELECT문에서 DATEDIFF() 함수를 사용하여 END_DATE(대여종료일)에서 START_DATE(대여시작일)을 빼고 + 하루(1)를 더하여 값을 만들어줍니다.

AVG()로 평균을 하고 나온 값의 소수점 두번째 자리에서 반올림(ROUND)하여 평균대여기간 AVERAGE_DURATION 컬럼을 만들었습니다.

 

위에서 만든 평균대여기간(AVERAGE_DURATION)이 7 이상인 데이터가 바로 HAVING문의 조건이 됩니다.

마지막으로 ORDER BY문에서 AVERAGE_DURATION을 기준으로 내림차순, CAR_ID로 내림차순 정렬하여 결과를 반환합니다.

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 MySQL  (0) 2023.02.14
[코딩테스트] 프로그래머스 대여기록이 존재하는 자동차 리스트 구하기 MySQL  (0) 2023.02.13
[코딩테스트] 프로그래머스 둘만의 암호 파이썬(Python)  (0) 2023.02.11
[코딩테스트] 프로그래머스 2 x n 타일링 파이썬(Python)  (0) 2023.02.09
[코딩테스트] 프로그래머스 베스트앨범 파이썬(Python)  (0) 2023.02.08
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 MySQL
    • [코딩테스트] 프로그래머스 대여기록이 존재하는 자동차 리스트 구하기 MySQL
    • [코딩테스트] 프로그래머스 둘만의 암호 파이썬(Python)
    • [코딩테스트] 프로그래머스 2 x n 타일링 파이썬(Python)
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바