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

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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

티스토리툴바