Notice
Recent Posts
Recent Comments
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- curdate
- datediff
- 신뢰구간
- DATE_FORMAT
- 재귀쿼리
- pivot table
- limit
- 프로그래머스
- 태블로
- 표분편차
- tableau
- rrule
- split
- merge
- calesce
- 표준오차
- python
- floor
- 정규분포
- 데이터 리터러시
- lambda
- join
- 레이더차트
- dateofmonth
- concat
- Recursive
- 모집단
- 재퀴쿼리
- truncate
- 표본분포
Archives
- Today
- Total
반응형
hyezdata 님의 블로그
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 본문
대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
이 문제는 푸는데 며칠 걸렸는데 그동안 문제를 잘못 이해하고 있었음...;;
그것도 두번이나...
이 거짓같은 섬에 버려지다니
먼저 첨엔 '대여시작일 기준' 2022-08 ~ 2022-10 을 빼먹음
-- 2022-08 ~ 2022-10 중 대여 횟수 5회 이상인 자동차
-- 월별 자동차 ID별 총 대여횟수(records)
-- 월 기준 오름차순, car_id DESC
-- 총 대여횟수 0이면 제외
SELECT *
FROM (SELECT CASE WHEN start_date >= '2022-08-01' AND end_date <= '2022-08-31' THEN '8'
WHEN start_date >= '2022-09-01' AND end_date <= '2022-09-30' THEN '9'
WHEN start_date >= '2022-10-01' AND end_date <= '2022-10-31' THEN '10'
END AS 'month',
car_id,
COUNT(car_id) AS 'records'
FROM car_rental_company_rental_history
GROUP BY 1, 2
HAVING COUNT(car_id) > 4
) AS m
WHERE m.month IS NOT NULL
ORDER BY m.month, car_id DESC
대여 시작일 기준을 조건에 넣어서 다시 풀었으나 당연히 안되겠지...
SELECT MONTH(start_date) AS month, car_id, COUNT(car_id) AS records
FROM car_rental_company_rental_history
WHERE DATE_FORMAT(start_date, '%Y-%m-%d') BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY month, car_id
HAVING COUNT(car_id) >= 5
문제는 202년 8월 ~ 2022년 10월 '동안에 대여 5번 이상인 자동차들'을 구하고 그 안에서 월별 대여 횟수를 구하는 것!
이었는데 나는 2022-08 ~ 2022-10 사이에 월별 자동차ID별 대여 횟수만 구한 거였음...ㅎ
-- 대여 시작일 기준 2022-08 ~ 2022-10 중 대여 횟수 5회 이상인 자동차들에 대해서
-- 월별 자동차 ID별 총 대여횟수(records)
-- 월 기준 오름차순, car_id DESC
-- 총 대여횟수 0이면 제외
SELECT MONTH(start_date) AS month, car_id, COUNT(*) AS records
FROM car_rental_company_rental_history
WHERE DATE_FORMAT(start_date, '%Y-%m-%d') BETWEEN '2022-08-01' AND '2022-10-31'
AND car_id IN (
SELECT car_id
FROM car_rental_company_rental_history
WHERE DATE_FORMAT(start_date, '%Y-%m-%d') BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY car_id
HAVING COUNT(car_id) >= 5
)
GROUP BY MONTH(start_date), car_id
ORDER BY month, car_id DESC
728x90
반응형
'내일배움캠프 > 코드카타' 카테고리의 다른 글
[파이썬] 제일 작은 수 제거하기 (0) | 2025.05.08 |
---|---|
입양 시각 구하기(2) (0) | 2025.04.11 |
[SQL] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기, 주문량이 많은 아이스크림들 조회하기 (0) | 2025.03.18 |
[파이썬] 두 수의 합, 두 수의 나눗셈, 각도기, 짝수의 합, 배열의 평균값 (0) | 2025.03.17 |
[파이썬] 두 수의 차, 두 수의 곱, 몫 구하기, 나이 출력, 숫자 비교하기 (0) | 2025.03.17 |