문제
https://school.programmers.co.kr/learn/courses/30/lessons/133026
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
GROUP BY와 서브쿼리를 이용하여 문제를 해결할 수 있었다.
A 테이블을 SELECT 하는 서브쿼리 절에서 FLAVOR 컬럼에 대한 GROUP BY를 주어 1차로 맛에 대한 총 주문량을 조회해도록 해주었다.
이는 차후에 메인 쿼리에서 INGREDIENT_TYPE 컬럼에 대한 GROUP BY를 진행하기 위한 밑바탕으로 사용하기 위해 위와 같은 방식으로 진행하였고
ICECREAM_INFO 테이블의 FLAVOR는 FIRST_HALF 테이블의 FLAVOR의 외래 키인 점을 이용해서 B 테이블에선 FLAVOR에 해당하는 INGREDIENT_TYPE을 조회할 수 있도록 해준다.
이렇게 서브쿼리를 모두 작성하면 메인쿼리에선 INGREDIENT_TYPE 그룹에 따른 TOTAL_ORDER를 A 테이블에서 조회한 TOTAL_ORDER의 SUM으로 조회할 수 있도록 해주면 문제를 해결할 수 있다.
쿼리
SELECT
B.INGREDIENT_TYPE,
SUM(A.TOTAL_ORDER) AS TOTAL_ORDER
FROM
(SELECT
FLAVOR,
SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM
FIRST_HALF
GROUP BY
FLAVOR
) AS A,
(SELECT
*
FROM
ICECREAM_INFO
) AS B
WHERE
A.FLAVOR = B.FLAVOR
GROUP BY
B.INGREDIENT_TYPE
ORDER BY
TOTAL_ORDER ASC
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level3 오랜 기간 보호한 동물(2) MySQL (0) | 2022.11.01 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level3 성조건별로 분류하여 주문상태 출력하기 MySQL (0) | 2022.10.31 |
[프로그래머스-SQL] 프로그래머스 SQL Level4 식품분류별 가장 비싼 식품의 정보 조회하기 MySQL (0) | 2022.10.13 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 즐겨찾기가 가장 많은 식당 정보 출력하기 MySQL (0) | 2022.10.12 |
[프로그래머스-SQL] 프로그래머스 SQL Level1 경기도에 위치한 식품창고 목록 출력하기 MySQL (0) | 2022.10.12 |