사용 언어 - MYSQL
프로그래머스 LV 4) 5월 식품들의 총매출 구하기
정답
JOIN (정답 맞춘 여부 X)
FOOD_ORDER 테이블을 기준으로 JOIN 한다.
A.PRODUCE_DATE LIKE '2022-05%'
A.PRODUCT_ID를 기준으로 그루핑 해주고, B.PRICE를 A.AMOUNT에 곱해주면 총매출을 구할 수 있다.
SELECT P.PRODUCT_ID, PRODUCT_NAME, SUM(PRICE*AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT AS P
JOIN FOOD_ORDER AS O
ON P.PRODUCT_ID = O.PRODUCT_ID
WHERE PRODUCE_DATE LIKE '2022-05%'
GROUP BY P.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID;
같은 뜻의 코드!
SELECT A.PRODUCT_ID, B.PRODUCT_NAME, SUM(B.PRICE * A.AMOUNT) AS TOTAL_SALES
FROM FOOD_ORDER AS A
JOIN (SELECT * FROM FOOD_PRODUCT) AS B
ON A.PRODUCT_ID = B.PRODUCT_ID
WHERE A.PRODUCE_DATE LIKE '2022-05%'
GROUP BY A.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, B.PRODUCT_ID;
처음에 시도했던 방식 - 내오답풀이
너무 복잡하게 생각한듯...
-- 오답
SELECT P.PRODUCT_ID, P.PRODUCT_NAME,
(P.PRICE * O.AMOUNT) AS TOTAL_SALES
FROM FOOD_PRODUCT AS P
JOIN (SELECT PRODUCT_ID, PRODUCE_DATE, SUM(AMOUNT) AS AMOUNT
FROM FOOD_ORDER
GROUP BY PRODUCT_ID
HAVING YEAR(PRODUCE_DATE) = 2022 AND MONTH(PRODUCE_DATE) = 5
) AS O
ON P.PRODUCT_ID = O.PRODUCT_ID
ORDER BY TOTAL_SALES DESC, P.PRODUCT_ID;
레퍼런스
- 정답 깃허브
'Stay Hungry Stay Foolish > SQL' 카테고리의 다른 글
[MYSQL] 우유와 요거트가 담긴 장바구니 (1) | 2023.10.04 |
---|---|
[MYSQL] 헤비 유저가 소유한 장소 (0) | 2023.10.04 |
[MYSQL] 상품을 구매한 회원 비율 구하기 (0) | 2023.10.04 |
[MYSQL] 주문량이 많은 아이스크림들 조회하기 (0) | 2023.10.04 |
[MYSQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.10.04 |
댓글