SQL 활용 능력 유지를 위한 아카이빙
틀린 내용이 있을 수 있습니다. 언제든 정정 댓글 환영입니다!

카테고리 별 상품 개수 구하기 - GROUP BY
문제 조건
상반기 동안 각 아이스크림 성분 타입과 성분 타입에 대한 아이스크림의 총 주문량을 작은 순서대로 조회하기.
이 때 총 주문량을 나타내는 컬럼명은 TOTAL_ORDER로 지정할 것.
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이 및 정답
SELECT I.INGREDIENT_TYPE, SUM(H.TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF H
JOIN ICECREAM_INFO I ON H.FLAVOR = I.FLAVOR
GROUP BY I.INGREDIENT_TYPE
ORDER BY TOTAL_ORDER ASC
;
- 먼저 SELECT절에서 INGREDIENT_TYPE과 총 주문량을 합한 SUM(TOTAL_ORDER)을 가져온다.
- 이 때, 총 주문량 컬럼을 TOTAL_ORDER로 가져오라 했으니까 정답은
- SUM(H.TOTAL_ORDER) AS TOTAL_ORDER 과 같이 별칭(ALIAS)를 써 줄것.
- 두 테이블을 활용하므로, JOIN 함수를 써서 외래 키인 FLAVOR로 연결시켜준다.
- JOIN ICECREAM_INFO I ON H.FLAVOR = I.FLAVOR
- 아이스크림 성분 타입(INGREDIENT_TYPE)을 기준으로 그룹화(GROUP BY) 하는게 핵심!
- SUM(TOTAL_ORDER)의 기준을 잡아줄 그룹화(GROUP BY)를 하는 과정
- GROUP BY I.INGREDIENT_TYPE
- 즉, 아이스크림 성분 타입을 기준으로 그룹화해서 총 주문량의 합을 구해라~ 라고 명령하는 과정
- 총 주문량 작은 순으로 정렬해야 하므로, ORDER BY TOTAL_ORDER ASC
'SQL' 카테고리의 다른 글
| [Do it! SQL 입문] 서브쿼리 (1) | 2025.05.05 |
|---|---|
| [프로그래머스] MYSQL | 카테고리 별 상품 개수 구하기 (LV.2) (0) | 2025.03.08 |
| [프로그래머스] MYSQL | 조건에 맞는 회원수 구하기 (LV.1) (0) | 2025.03.06 |
| [프로그래머스] MYSQL | 대여 기록이 존재하는 자동차 리스트 구하기 (LV.3) (0) | 2025.03.04 |