🤔 문제 분석
1) PRODUCT 테이블과 OFFLINE_SALE 테이블에서
2) 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요.
3) 결과는 매출액을 기준으로 내림차순 정렬해주시고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.
💡 풀이
SELECT P.PRODUCT_CODE, SUM(SALE.SALES_AMOUNT * P.PRICE) AS SALES
FROM PRODUCT AS P
JOIN (
SELECT PRODUCT_ID, SUM(SALES_AMOUNT) AS SALES_AMOUNT
FROM OFFLINE_SALE
GROUP BY PRODUCT_ID
) AS SALE ON SALE.PRODUCT_ID = P.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE
✍️ POINT
JOIN 할 때 group by 해서 sales_amount의 sum을 구한 다음에 table을 가져와야 한다.
그 후 1번 table과 합칠 때, group by 한 다음 price를 곱하고 값을 더해야 한다.
'코딩테스트 > 프로그래머스 SQL' 카테고리의 다른 글
[String, Date] 48. 취소되지 않은 진료 예약 조회하기 (LV. 4) (0) | 2022.11.28 |
---|---|
[JOIN] 47. 상품을 구매한 회원 비율 구하기 (LV. 5) (0) | 2022.11.28 |
[JOIN] 45. 보호소에서 중성화한 동물 (LV. 4) (0) | 2022.11.26 |
[JOIN] 44. 오랜 기간 보호한 동물(1) (LV. 3) (0) | 2022.11.26 |
[JOIN] 43. 있었는데요 없었습니다 (LV. 3) (0) | 2022.11.26 |
댓글