반응형
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 |