본문 바로가기

반응형

문제

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

구조

PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다.
OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냅니다.

예시


완성한 쿼리

select
    p.product_code,
    p.price * os.sell_num sales
from product p join (
    select
        product_id,
        sum(sales_amount) sell_num
    from offline_sale
    group by product_id
) os on p.product_id = os.product_id
order by sales desc, p.product_code

각각 제품이 총 몇 개가 팔렸는지 임의로 테이블을 만든 뒤에 Join을 해줘서 팔링 갯수와 가격을 곱해줌으로써 문제에서 원하는 결과물을 출력할 수 있었습니다.

 

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131533

반응형
댓글