[SQL] 20240208

김예지·2024년 2월 8일

SQL 풀이

목록 보기
13/26
post-thumbnail

*프로그래머스 SQL 문제 풀이입니다.


문제 1:대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

📃 문제 1 링크

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

🔎 풀이 포인트

  • 조건: 2022년 8월 ~ 2022년 10월 총 대여 횟수가 5회 이상인 자동차의 총 대여 횟수
  • 정렬: 월 기준 오름차순, 자동차ID 기준 내림차순
  • OUTPUT COLUMNS: 월, 자동차ID, RECORDS(월별 총 대여 횟수)

제출 답안

SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(HISTORY_ID) AS RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
    AND 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(CAR_ID) >= 5)
GROUP BY MONTH(START_DATE), CAR_ID
HAVING COUNT(HISTORY_ID) > 0
ORDER BY MONTH, CAR_ID DESC ; 

문제 2:성분으로 구분한 아이스크림 총 주문량

📃 문제 2 링크

상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총주문량을 총주문량이 작은 순서대로 조회하는 SQL 문을 작성해주세요. 이때 총주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정해주세요.

🔎 풀이 포인트

  • 조건: 상반기 동안 각 아이스크림 성분 타입, 성분 타입에 대한 아이스크림의 총주문량
  • 정렬: 총주문량 기준 오름차순
  • OUTPUT COLUMNS: 성분 타입, TOTAL_ORDER(총주문량)

제출 답안

SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF A, ICECREAM_INFO B
WHERE A.FLAVOR = B.FLAVOR
GROUP BY INGREDIENT_TYPE
ORDER BY TOTAL_ORDER; 

문제 3:고양이와 개는 몇 마리 있을까

📃 문제 3 링크

동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성해주세요. 이때 고양이를 개보다 먼저 조회해주세요.

🔎 풀이 포인트

  • 조건: 동물 보호소에 들어온 고양이와 개의 마리 수 계산
  • 정렬: 고양이를 개보다 먼저 조회(오름차순)
  • OUTPUT COLUMNS: ANIMAL_TYPE, COUNT

제출 답안

SELECT ANIMAL_TYPE, COUNT(ANIMAL_ID) AS COUNT
FROM ANIMAL_INS
WHERE ANIMAL_TYPE IN ('Cat', 'Dog')
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE; 
profile
넓고 얕게? 좁고 깊게?

0개의 댓글