dmswl
[프로그래머스] GROUP BY 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하 본문
M1.
# 1. 대여 시작일이 2022-08부터 2022-10까지인 데이터 추출
# 2. 이 중 자동차(CAR_ID)에 대해 GROUP BY COUNT 한 총 대여 횟수가 5회 이상인 자동차(CAR_ID)에 대해 월별(MONTH) 자동차(CAR_ID) 대여횟수(RECORDS)출력
# 1
WITH MT AS (
SELECT CAR_ID, MONTH(START_DATE) AS MONTH
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) IN (7,8,9)
GROUP BY MONTH, CAR_ID
HAVING COUNT(*) >= 5
)
SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) FROM RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY CC, MT
WHERE MT.CAR_ID = CC.CAR_ID AND MONTH IN (7,8,9) AND YEAR(START_DATE) = 2022
GROUP BY MONTH, CAR_ID
HAVING RECORDS >= 5
ORDER BY MONTH, CAR_ID DESC;
# SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS
# FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
# WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) IN (8,9,10)
# GROUP BY CAR_ID, MONTH
# HAVING RECORDS >= 5
# ORDER BY MONTH, CAR_ID DESC;
M2.
SELECT MONTH, CAR_ID, RECORDS
FROM(
SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE CAR_ID IN (
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) BETWEEN 8 AND 10
GROUP BY CAR_ID
HAVING COUNT(*) >= 5)
AND YEAR(START_DATE) = 2022 AND MONTH(START_DATE) BETWEEN 8 AND 10
GROUP BY MONTH, CAR_ID) AS RENT
ORDER BY MONTH, CAR_ID DESC;
'코테 공부 > SQL' 카테고리의 다른 글
[프로그래머스] GROUP BY 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.08.07 |
---|---|
[프로그래머스] GROUP BY 저자 별 카테고리 별 매출액 집계하기 (0) | 2024.08.07 |
[프로그래머스] GROUP BY 카테고리 별 도서 판매량 집계하기 (0) | 2024.08.07 |
윈도우 함수 정리 (0) | 2024.08.07 |
[프로그래머스] SELECT 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.08.07 |