관리 메뉴

오늘도 배운다

상품 별 오프라인 매출 구하기 >> 코딩테스트 연습 JOIN상 본문

코딩테스트연습(SQL)

상품 별 오프라인 매출 구하기 >> 코딩테스트 연습 JOIN상

LearnerToRunner 2022. 11. 16. 19:49

문제

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

 

제출답안

WITH OSP AS 
    (SELECT p.product_id, p.product_code, p.price, o.sales_amount, p.price*o.sales_amount AS revenue
     FROM 
        (product AS p JOIN offline_sale AS o
        ON p.product_id = o.product_id)
    )

SELECT product_code, sum(revenue) AS sales
FROM OSP
GROUP BY product_code
ORDER BY 2 DESC, 1

 

 

 

풀이

더보기

[product] 테이블 조회

SELECT * FROM product

 

[offline_sale] 테이블 조회

SELECT * FROM offline_sale

 

두 테이블을 조인한 가상테이블 만들면서 판매액(가격 * 수량)

WITH OSP AS 
    (SELECT p.product_id, p.product_code, p.price, o.sales_amount, p.price*o.sales_amount AS revenue
     FROM 
        (product AS p JOIN offline_sale AS o
        ON p.product_id = o.product_id)
    )

 

 그룹하여 판매액 더 한 후 정렬

SELECT product_code, sum(revenue) AS sales
FROM OSP
GROUP BY product_code
ORDER BY 2 DESC, 1

 

 

 

문제 바로가기

 

728x90
Comments