다음은 어느 의류 쇼핑몰에서 판매중인 상품들의 상품 정보를 담은 PRODUCT 테이블과 오프라인 상품 판매 정보를 담은 OFFLINE_SALE 테이블 입니다.
PRODUCT 테이블은 아래와 같은 구조로 PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냅니다
OFFLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냅니다.
문제
PRODUCT테이블과 OFFLINE_SALE 테이블에서 상품 코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작성해주세요. 결고는 매출액을 기준으로 내림차순 정렬해주시고, 매출액이 같다면 상품코드를 기준으로 오름차순 정렬해주세요.
SELECT PRO.PRODUCT_CODE, SUM(OFF.SALES_AMOUNT) * PRO,PRICE AS SALES
FROM PRODUCT PRO, OFFLINE_SALE OFF
WHERE PRO.PRODUCT_ID = OFF.PRODUCT_ID
GROUP BY PRO.PRODUCT_ID
ORDER BY SALES DESC, PRODUCT_CODE
* 문제를 잘 안읽어서 고생.. 매출액 기준 내림차순만하고 매출액이 같다면 상품코드를 기준으로 오름차순 정렬을 안해서 30분은 까먹은듯하다.
두 테이블을 조인해서 새로운 테이블을 만들어 주는데 중요한건 개수를 세는게 아니라 개수를 합하는것이기 때문에 count가 아니라 SUM을 해야한다.
ORDER BY SALES DESC, PRODUCT_CODE
SALES 기준 내림차순 정렬, SALES가 같다면 PRODUCT_CODE순으로 정렬.