[프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설

2025. 12. 1. 19:32·코딩테스트/MYSQL

🔗 1. 문제 URL

프로그래머스 문제 바로가기 👉
https://school.programmers.co.kr/learn/courses/30/lessons/133026

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


 

📝 2. 문제 요구사항 정리

이 문제는 FIRST_HALF 테이블과 ICECREAM_INFO 테이블을 이용해

각 아이스크림 성분 타입(INGREDIENT_TYPE) 별로
상반기 동안의 총 주문량(TOTAL_ORDER) 을 구하는 문제입니다.

핵심은 두 테이블을 FLAVOR 컬럼으로 JOIN 한 뒤,
성분 타입별 주문량 합계를 구하고
그 결과를 총주문량이 작은 순서(ASC) 로 정렬하는 것입니다.

✔ 요구사항 요약

  • FIRST_HALF 테이블과 ICECREAM_INFO 테이블 JOIN (FLAVOR 기준)
  • 각 INGREDIENT_TYPE 별 총 주문량(TOTAL_ORDER) 합계 계산 (SUM)
  • 결과 컬럼명: TOTAL_ORDER
  • 총주문량이 작은 순서(ASC) 로 정렬
  • 출력 컬럼: INGREDIENT_TYPE, TOTAL_ORDER

 


 

✅ 3. 정답 SQL 코드

SELECT I.INGREDIENT_TYPE, SUM(F.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF F JOIN ICECREAM_INFO I
        USING(FLAVOR)
GROUP BY I.INGREDIENT_TYPE
ORDER BY TOTAL_ORDER ASC;

-- 아이스크림 가게의 상반기 주문 정보를 담은 FIRST_HALF 테이블
-- 아이스크림 성분에 대한 정보를 담은 ICECREAM_INFO 테이블
-- ICECREAM_INFO의 FLAVOR는 FIRST_HALF 테이블의 FLAVOR의 외래 키

 


 

💬 4. 풀이하면서 느낀 점

이 문제는 JOIN과 GROUP BY의 기본 개념만 알고 있다면 어렵지 않게 해결할 수 있는 유형이였습니다.
첫 번째로 해야 할 일은 각 FLAVOR의 성분 타입(INGREDIENT_TYPE)을 알기 위해 두 테이블을 조인하는 것,
두 번째로는 성분 타입별 총 주문량을 집계하는 것입니다.

문제를 읽으며 다음 흐름이 자연스럽게 떠올랐습니다.

  1. "각 성분 타입별 총 주문량" → GROUP BY + SUM
  2. "FLAVOR 기준으로 두 테이블 연결" → JOIN USING(FLAVOR)
  3. "총주문량이 작은 순서대로" → ORDER BY ASC

이런 구조적인 사고를 그대로 SQL 문으로 옮기면 비교적 쉽게 정답을 만들 수 있었고,

특히 이 문제는 집계 후 정렬하는 가장 기본적인 패턴을 복습하는데 도움이 됐습니다.

 

또한 USING(FLAVOR) 구문을 사용하면
ON F.FLAVOR = I.FLAVOR 보다 더 깔끔하게 조인할 수 있다는 점도
문제 풀이 과정에서 다시 떠올릴 수 있었습니다.

 

전체적으로 복잡한 연산 없이
JOIN → GROUP BY → SUM → ORDER BY
라는 기본적인 SQL 처리 흐름을 이해하는 데 좋은 연습이 된 문제였습니다.

 


 

궁금하신 점이나 포스팅에 대한 피드백이 있다면 댓글로 편하게 남겨주세요.
도움이 되셨다면 공감이나 댓글 한 줄 남겨주시면 포스팅을 이어가는 데 큰 힘이 됩니다. 😊

 

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

[프로그래머스 LV.2] 분기별 분화된 대장균의 개체 수 구하기 — MySQL 정답 & 해설  (0) 2025.12.03
[프로그래머스 LV.2] 재구매가 일어난 상품과 회원 리스트 구하기 — MySQL 정답 & 해설  (0) 2025.12.03
[프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설  (3) 2025.11.29
[프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설  (0) 2025.11.29
[프로그래머스 LV.2] ROOT 아이템 구하기 — MySQL 정답 & 해설  (0) 2025.11.27
'코딩테스트/MYSQL' 카테고리의 다른 글
  • [프로그래머스 LV.2] 분기별 분화된 대장균의 개체 수 구하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 재구매가 일어난 상품과 회원 리스트 구하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 조건에 맞는 도서와 저자 리스트 출력하기 — MySQL 정답 & 해설
  • [프로그래머스 LV.2] 조건에 맞는 사원 정보 조회하기 — MySQL 정답 & 해설
작지만 꾸준한 성장으로
작지만 꾸준한 성장으로
contact
  • 작지만 꾸준한 성장으로
    파랑새
    작지만 꾸준한 성장으로
  • 전체
    오늘
    어제
    • 분류 전체보기 (26)
      • IT (3)
      • 코딩테스트 (23)
        • 알고리즘 (12)
        • MYSQL (11)
      • 패션 (0)
      • 독후감 (0)
      • TIL (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    wide format
    프로그래머스 lv.0
    공공데이터 전처리
    프로그래머스 lv.1
    백준
    CPU Bound
    Programmers
    파이썬
    python3
    데이터 리모델링
    Pandas pivot
    자바
    프로그래머스 lv.2
    I/O Bound
    코테
    데이터 전처리 파이프라인
    파이썬코테
    Pandas melt
    데이터베이스
    SWEA
    long format
    프로그래머스
    sql 코딩테스트
    알고리즘
    코딩테스트
    Python
    mysql
    Pandas groupby agg
    와이드 포맷 롱 포맷
    모델 추론
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
작지만 꾸준한 성장으로
[프로그래머스 LV.2] 성분으로 구분한 아이스크림 총 주문량 — MySQL 정답 & 해설
상단으로

티스토리툴바