⌨️ Code Taka/MySQL

[프로그래머스] 상품 별 오프라인 매출 구하기

ny:D 2024. 7. 23. 09:44

 

 

프로그래머스

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

programmers.co.kr

문제

PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드(PRODUCT_CODE) 별 매출액*합계를 출력하는 SQL문을 작성해주세요. 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.

* 매출액 = PRICE(판매가) * SALES_AMOUNT(판매량)

🍀 Solution

SELECT p.PRODUCT_CODE,
       SUM(p.PRICE*os.SALES_AMOUNT) SALES
FROM OFFLINE_SALE os LEFT JOIN PRODUCT p ON os.PRODUCT_ID = p.PRODUCT_ID
GROUP BY p.PRODUCT_CODE
ORDER BY SALES desc, PRODUCT_CODE;

 

🐧 풀이

  • 상품 코드별 매출액 합계 계산
    • `GROUPBY p.PRODUCT_CODE` : 상품 코드를 기준으로 묶기
    • `SUM(p.PRICE * os.SALES_AMOUNT)` : 매출액 합계 계산 → 별칭으로 SALES
  • 매출액을 기준으로 내림차순, 매출액 같을 시 상품코드 기준 오름차순 정렬
    → `ORDER BY SALES desc, PRODUCT_CODE`
💡 계산 순서상 ORDER BY 가 맨 마지막이므로 앞에서 지정한 별칭으로 입력해도 됨.

🖨️ 결과