[MySQL] programmers : 상품 별 오프라인 매출 구하기
Problem
https://school.programmers.co.kr/learn/courses/30/lessons/131533
Idea
한 상품의 매출액은 판매가에 판매량을 곱한 값이다. 판매가는 PRODUCT 테이블에 PRICE라는 속성으로 관리되고, 판매량은 OFFLINE_SALE 테이블에 SALES_AMOUNT라는 속성으로 관리된다.
PRODUCT 테이블과 OFFLINE_SALE 테이블이 PRODUCT_ID라는 속성을 공유하므로 해당 속성을 기준으로 INNER JOIN 하고, 문제에서 요구하는 것은 각 상품별 매출액이기 때문에 PRODUT_ID를 기준으로 그룹화한다.
그룹화 이후 PRICE와 SALES_AMOUNT를 곱하면 각 날짜마다의 매출액을 얻을 수 있고, 이를 SUM을 통해 모두 더하면 한 상품에 대한 총 매출액을 얻을 수 있다.
Code
SELECT
PRODUCT_CODE, SUM(PRO.PRICE*SALES_AMOUNT) AS SALES
FROM OFFLINE_SALE OS
JOIN PRODUCT PRO
ON OS.PRODUCT_ID = PRO.PRODUCT_ID
GROUP BY PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE ASC;