Snoopy [JOIN] 46. 상품 별 오프라인 매출 구하기 (LV. 2)
코딩테스트/프로그래머스 SQL

[JOIN] 46. 상품 별 오프라인 매출 구하기 (LV. 2)

Sooyoon Jeong 2022. 11. 26.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


🤔 문제 분석

1) PRODUCT 테이블과 OFFLINE_SALE 테이블에서

2) 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요.

3) 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.

 

💡 풀이

SELECT P.PRODUCT_CODE, SUM(SALE.SALES_AMOUNT * P.PRICE) AS SALES
FROM PRODUCT AS P
    JOIN (
    SELECT PRODUCT_ID, SUM(SALES_AMOUNT) AS SALES_AMOUNT
    FROM OFFLINE_SALE
    GROUP BY PRODUCT_ID
    ) AS SALE ON SALE.PRODUCT_ID = P.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE

 

✍️ POINT

JOIN 할 때 group by 해서 sales_amount의 sum을 구한 다음에 table을 가져와야 한다.

그 후 1번 table과 합칠 때, group by 한 다음 price를 곱하고 값을 더해야 한다. 

 

댓글