반응형
  • 티스토리 홈
  • 프로필사진
    쪼시
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
쪼시
  • 프로필사진
    쪼시
    • 분류 전체보기 (88)
      • OS (2)
        • Window (0)
        • Mac (0)
        • Linux (0)
        • Ubuntu (2)
      • Programming (5)
        • C (1)
        • C++ (0)
        • C# (0)
        • Java (0)
        • JVM Monitoring (1)
        • Python (0)
        • HTML5 (1)
        • CSS (0)
        • JavaScript (0)
        • React (0)
        • MATLAB (1)
      • DB (15)
        • CREATE (5)
        • SELECT (8)
        • UPDATE (1)
        • DELETE (1)
      • 코딩 테스트 (64)
        • C++ (2)
        • Java (0)
        • Python (0)
        • JavaScript (0)
        • SQL (62)
      • GIT (0)
      • Drone (0)
        • Model (0)
        • Info (0)
      • IT Info (0)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [프로그래머스][SQL 고득점 KIT][GROUP BY][Level 3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
        2024년 10월 22일
        • 쪼시
        • 작성자
        • 2024.10.22.:58
        반응형

        https://school.programmers.co.kr/learn/courses/30/lessons/151139

         

        프로그래머스

        코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

        programmers.co.kr

         

        [프로그래머스][SQL 고득점 KIT][GROUP BY][Level 3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

         

        문제 설명

         

        다음은 어느 자동차 대여 회사의 자동차 대여 기록 정보를 담은 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블입니다. CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블은 아래와 같은 구조로 되어있으며, HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 종료일을 나타냅니다.

        Column name Type Nullable
        HISTORY_ID INTEGER FALSE
        CAR_ID INTEGER FALSE
        START_DATE DATE FALSE
        END_DATE DATE FALSE

        문제

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


        예시

        예를 들어 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블이 다음과 같다면

         

        * 생략 *

         

        대여 시작일을 기준으로 총 대여 횟수가 5회 이상인 자동차는 자동차 ID가 1, 2인 자동차입니다. 월 별 자동차 ID별 총 대여 횟수를 구하고 월 오름차순, 자동차 ID 내림차순으로 정렬하면 다음과 같이 나와야 합니다.

         

        MONTH CAR_ID RECORDS
        8 2 2
        8 1 2
        9 2 1
        9 1 3
        10 2 2

        문제 풀이

        1. 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서
        2. 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력
        3. 결과는 월을 기준으로 오름차순 정렬
        4. 자동차 ID를 기준으로 내림차순 정렬
        5. 특정 월의 총 대여 횟수가 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') BETWEEN '2022-08' AND '2022-10'
            AND CAR_ID IN (SELECT CAR_ID
                           FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
                           WHERE DATE_FORMAT(START_DATE, '%Y-%m') BETWEEN '2022-08' AND '2022-10'
                           GROUP BY CAR_ID
                           HAVING COUNT(CAR_ID) >= 5)
        GROUP BY CAR_ID, MONTH(START_DATE)
        HAVING RECORDS >= 1
        ORDER BY MONTH, CAR_ID DESC
        • 월별 자동차 ID, CAR_ID, RECORDS를 출력한다.
        • 2022-08 ~ 2022-10 월 기간 동안의 데이터를 가져온다.
        • CAR_ID는 2022-08 ~ 2022-10월 기간중 5번 이상인 경우의 CAR_ID를 가져온다.
        • CAR_ID와 MONTH 월마다 그룹화 한다. (CAR_ID마다 빌린 월을 찾기 위해서)
        • 빌린 월이 있을때의 값만 가져온다. (RECORDS가 1 이상)
        • 월을 기준으로 오름차순 ASC, CAR_ID 기준으로 내림차순 DESC 정렬 한다.

        실행 결과

        MONTH CAR_ID RECORDS
        8 2 2
        8 1 2
        9 2 1
        9 1 3
        10 2 2

         

        반응형
        저작자표시 비영리 변경금지 (새창열림)

        '코딩 테스트 > SQL' 카테고리의 다른 글

        [프로그래머스][SQL 고득점 KIT][GROUP BY][Level 2] 진료과별 총 예약 횟수 출력하기  (3) 2024.10.22
        [프로그래머스][SQL 고득점 KIT][GROUP BY][Level 2] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기  (1) 2024.10.22
        [프로그래머스][SQL 고득점 KIT][GROUP BY][Level 3] 카테고리 별 도서 판매량 집계하기  (6) 2024.10.21
        [프로그래머스][SQL 고득점 KIT][SUM, MAX, MIN][Level 2] 연도별 대장균 크기의 편차 구하기  (0) 2024.10.21
        [프로그래머스][SQL 고득점 KIT][SUM, MAX, MIN][Level 1] 잡은 물고기 중 가장 큰 물고기의 길이 구하기  (1) 2024.10.21
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바