링크 : 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을 해줘야 하는 경우 같이 넣어주어야 조건에 만족할 수 있다.
'SQL' 카테고리의 다른 글
[SQL/STRING, DATE] 이름에 el이 들어가는 동물 찾기 - 프로그래머스 (0) | 2024.02.13 |
---|---|
[SQL/STRING, DATE] 조건에 부합하는 중고거래 상태 조회하기 - 프로그래머스 (0) | 2024.02.13 |
[SQL/STRING, DATE] 중성화 여부 파악하기 - 프로그래머스 (0) | 2024.02.13 |
[SQL/STRING, DATE] DATETIME에서 DATE로 형 변환 - 프로그래머스 (0) | 2024.02.13 |
[SQL/STRING, DATE] 카테고리 별 상품 개수 구하기 - 프로그래머스 (0) | 2024.02.13 |