[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

2024. 9. 19. 14:34·알고리즘/SQL

 

Question

 

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요. 특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요.

 

 

Pseudocode

 

 

  1. 서브쿼리(SELECT car_id ... HAVING COUNT(*) >= 5):
    • car_rental_company_rental_history 테이블에서 2022년 8월 1일부터 2022년 10월 31일까지의 기간에 대한 렌탈 기록을 찾고, 각 car_id별로 그룹화하여 렌탈 기록이 5회 이상인 차량을 필터링합니다.
  2. 메인쿼리:
    • 서브쿼리에서 반환된 car_id 목록에 있는 차량만을 대상으로 하고, 동일한 기간(2022-08-01부터 2022-10-31) 내에 시작된 렌탈 기록을 다시 찾습니다.
  3. GROUP BY:
    • Month(start_date)를 통해 각 렌탈 기록의 시작 월을 추출하고, car_id와 함께 그룹화합니다. 이를 통해 각 월별로 차량별 렌탈 기록 수를 계산합니다.
  4. ORDER BY:
    • 결과는 월(MONTH)을 기준으로 오름차순으로, 같은 월 내에서는 car_id를 기준으로 내림차순으로 정렬됩니다.

 

 

 

Code

 

SELECT Month(start_date) MONTH,
       car_id,
       Count(*)          RECORDS
FROM   car_rental_company_rental_history
WHERE  car_id IN(SELECT car_id
                 FROM   car_rental_company_rental_history
                 WHERE  start_date BETWEEN '2022-08-01' AND '2022-10-31'
                 GROUP  BY car_id
                 HAVING Count(*) >= 5)
       AND start_date BETWEEN '2022-08-01' AND '2022-10-31'
GROUP  BY month,
          car_id
ORDER  BY 1,
          2 DESC

'알고리즘 > SQL' 카테고리의 다른 글

[프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기  (0) 2024.09.19
[프로그래머스] 주문량이 많은 아이스크림들 조회하기  (0) 2024.09.19
[프로그래머스] 우유와 요거트가 담긴 장바구니  (3) 2024.09.19
[프로그래머스] 헤비 유저가 소유한 장소  (0) 2024.09.19
[프로그래머스] 저자 별 카테고리 별 매출액 집계하기  (0) 2024.09.19
'알고리즘/SQL' 카테고리의 다른 글
  • [프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기
  • [프로그래머스] 주문량이 많은 아이스크림들 조회하기
  • [프로그래머스] 우유와 요거트가 담긴 장바구니
  • [프로그래머스] 헤비 유저가 소유한 장소
Noaahhh
Noaahhh
  • Noaahhh
    노아
    Noaahhh
  • 전체
    오늘
    어제
    • 분류 전체보기 (118)
      • 프로젝트 (4)
      • 알고리즘 (113)
        • SQL (108)
        • CP (5)
      • 자격증 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ABC
    소셜로그인
    atcoder
    cp
    Spring
    querydsl
    PCSQL
    JPQL
    cp초보
    인증/인가
    OAuth2.0
    contest397
    PS
    contest395
    springboot
    abc421
    카카오로그인
    atcoder beginner contest
    spingboot
    경쟁적프로그래밍
    프로그래밍대회
    SQL
    아픈 동물 찾기
    어린 동물 찾기
    SQL문제
    집계함수
    프로그래머스
    코딩테스트
    JWT
    pasql
  • hELLO· Designed By정상우.v4.10.5
Noaahhh
[프로그래머스] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
상단으로

티스토리툴바