노아

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

알고리즘/SQL

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

Noaahhh 2024. 9. 16. 17:26

 

Question

 

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

 

 

Pseudocode

 

  1. PRODUCT 테이블과 OFFLINE_SALE 테이블을 PRODUCT_ID로 조인.
  2. 각 PRODUCT_ID별로 SALES_AMOUNT 합계를 계산하고, 그 값에 해당 제품의 price를 곱해 SALES를 계산.
  3. PRODUCT_ID별로 그룹화.
  4. SALES를 기준으로 내림차순 정렬하고, 동일한 SALES 값에서는 PRODUCT_CODE를 기준으로 오름차순 정렬.
 

 

Code

 

SELECT P.PRODUCT_CODE, SUM(SALES_AMOUNT) * P.price as SALES
FROM PRODUCT P JOIN OFFLINE_SALE O 
ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_ID
ORDER BY SALES DESC, P.PRODUCT_CODE