기존에 배운 INNER JOIN을 사용해야한다.
따라서,
FROM PRODUCT AS A INNER JOIN OFFLINE_SALE AS B
ON A.PRODUCT_ID = B.PRODUCT_ID
로 해주었고,
GROUP BY A.PRODUCT_CODE로 그룹으로 묶어준 후
ORDER BY SALES DESC, A.PRODUCT_CODE ASC
로 정렬해줬다.
그런데 문제에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하세요.
가 문제에서 구하고자하는 값인데,
SELECT A.PRODUCT_CODE, A.PRICE * B.SALES_AMOUNT as SALES
로 상품코드 별 매출액만 구하고 더하지를 않아 원하는 결과가 출력되지 않았다.
위의 사실을 모른체 JOIN ON과 GROUP BY에 문제가 있는 줄 알고 많은 시간을
허비했다. JOIN ON, GROUP BY 문제를 더 많이 풀어볼 필요가 있다...
제출한 코드 :
SELECT A.PRODUCT_CODE, SUM(A.PRICE * B.SALES_AMOUNT) as SALES
FROM PRODUCT AS A INNER JOIN OFFLINE_SALE AS B
ON A.PRODUCT_ID = B.PRODUCT_ID
GROUP BY A.PRODUCT_CODE
ORDER BY SALES DESC, A.PRODUCT_CODE ASC
'SQL 문제' 카테고리의 다른 글
문제 36. 보호소에서 중성화한 동물 (0) | 2024.07.22 |
---|---|
문제 35. 오랜 기간 보호한 동물(2) (0) | 2024.07.22 |
문제 32. 카테고리 별 도서 판매량 집계하기(INNER JOIN) (0) | 2024.07.17 |
문제 31. 오랜 기간 보호한 동물(OUTER JOIN, LIMIT) (0) | 2024.07.17 |
문제 29. 인기있는 아이스크림 (0) | 2024.07.17 |