CODING TEST/MySQL

Lv2 - 상품 별 오프라인 매출 구하기

iamyuunzo 2025. 7. 29. 12:41

📌 문제 정보

- 문제 이름 : 프로그래머스 - (JOIN) 상품 별 오프라인 매출 구하기

- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131533

 

 

 

📌 문제 요약

- PRODUCT 테이블 : PRODUCT_ID, PRODUCT_CODE, PRICE

- OFFLINE_SALE 테이블 : OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE

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

 

예시)

PRODUCT_ID  PRODUCT_CODE  PRICE
1 A1000011 15,000
2 A1000045 8,000
3 C3000002 42,000

 

OFFLINE_SALE_ID  PRODUCT_ID  SALES_AMOUNT  SALES_DATE
1 1 2 2022-02-21
2 1 2 2022-03-02
3 3 3 2022-05-01
4 2 1 2022-05-24
5 1 2 2022-07-14
6 2 1 2022-09-22

 

출력)

PRODUCT_CODE  SALES
C3000002 126000
A1000011 90000
A1000045 16000

 

 

 

📌 내 풀이 및 코드

SELECT PRODUCT.PRODUCT_CODE, SUM(PRODUCT.PRICE * OFFLINE_SALE.SALES_AMOUNT) AS SALES
FROM PRODUCT
JOIN OFFLINE_SALE ON OFFLINE_SALE.PRODUCT_ID = PRODUCT.PROUDCT.ID
GROUP BY PRODUCT.PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE ASC;

 

  • FROM PRODUCT: 기준 테이블은 상품 테이블
  • JOIN OFFLINE_SALE: 판매 정보는 부가 정보니까 JOIN으로 붙임

 

 

 

 

 

📌 새로 배운 문법

<-- 이번 문제에서 새로 배운 Java 문법 정리 -->