문제
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
서브쿼리로 해결할 수 있었다.
문제를 얕게 보면 서브쿼리로 FOOD_PRODUCT 테이블과 FOOD_ORDER 테이블의 PRODUCT_ID가 같은 제품들의 필요 컬럼들을 조회하여 결과를 리턴하는 것이지만 까다로운 부분이 하나 있다.
FOOR_ORDER 테이블에서 PRODUCT_ID가 같지만 2개 이상 조회되는 ROW가 있어 이 부분을 GROUP BY로 PRODUCT_ID로 묶어주어 AMOUNT의 합을 조회해주고 메인쿼리에서 이를 바탕으로 한 TOTAL_SALES를 도출하면 문제를 해결할 수 있다.
쿼리
SELECT
A.PRODUCT_ID,
A.PRODUCT_NAME,
(A.PRICE * B.AMOUNT) AS TOTAL_SALES
FROM
FOOD_PRODUCT AS A,
(SELECT
PRODUCT_ID,
SUM(AMOUNT) AS AMOUNT
FROM
FOOD_ORDER
WHERE
PRODUCE_DATE
BETWEEN '2022-05-01' AND '2022-05-31'
GROUP BY
PRODUCT_ID
) AS B
WHERE
A.PRODUCT_ID = B.PRODUCT_ID
ORDER BY
TOTAL_SALES DESC
'프로그래머스-SQL' 카테고리의 다른 글
[프로그래머스-SQL] 프로그래머스 SQL Level2 3월에 태어난 여성 회원 목록 출력하기 MySQL (0) | 2022.10.11 |
---|---|
[프로그래머스-SQL] 프로그래머스 SQL Level1 강원도에 위치한 생산공장 목록 출력하기 MySQL (0) | 2022.10.11 |
[프로그래머스-SQL] 프로그래머스 SQL Level4 보호소에서 중성화한 동물 MySQL (0) | 2022.10.07 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 오랜 기간 보호한 동물(1) MySQL (0) | 2022.10.07 |
[프로그래머스-SQL] 프로그래머스 SQL Level3 없어진 기록 찾기 MySQL (0) | 2022.10.07 |