[mysql/oracle] 상품 별 오프라인 매출 구하기

2023. 5. 18. 21:38Programmers/SQL

문제 설명

 

문제

 

결과

 

mysql / oracle

1
2
3
4
5
SELECT MAX(A.PRODUCT_CODE) AS PRODUCT_CODE, SUM(B.SALES_AMOUNT*A.PRICE) AS SALES
FROM PRODUCT A, OFFLINE_SALE B
WHERE A.PRODUCT_ID = B.PRODUCT_ID
GROUP BY A.PRODUCT_ID
ORDER BY SALES DESC, PRODUCT_CODE
cs

1.상품코드별 매출액 → GROUP BY PRODUCT_ID

2. 매출액 = 상품코드별 판매량 * 판매가

    → FROM PRODUCT A, OFFLINE_SALE B

    →  SUM(B.sales_amount * A.price)

         : offline_sale 테이블에 같은 상품ID를 가진 row들이 있으므로 상품코드별로 더해줌 SUM()

3. GROUPBY이므로 집계함수 사용

    → MAX(A.PRODUCT_CODE)

        : 다 같은 상품코드이므로 MAX()든 MIN()이든 같은 결과가 나온다