[프로그래머스] 상품별 오프라인 매출 구하기

yannie·2024년 9월 12일
0

[문제]

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

[내가 푼 풀이(정답)]

-- 상품코드 별 매출액(판매가*판매량) 합계
SELECT
    P.PRODUCT_CODE,
    SUM(P.PRICE*O.SALES_AMOUNT) AS SALES
FROM PRODUCT P
INNER JOIN OFFLINE_SALE O
ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE
;

[코드리뷰]

  • PRODUCT테이블과 OFFLINE_SALE테이블을 INNER JOIN하여 SELECT문에서 조회할 수 있도록 하였다.
  • 상품코드별로 합계를 구해야 하기 때문에 GROUP BY를 사용하여 PRODUCT_CODE를 그룹화하였다.
  • 집계함수 중 SUM()함수를 사용하여 매출액 합계를 구했다.

기억할 것

그럼 GROUP BY를 사용하지 않으면 어떻게 되는거지?

  • GROUP BY를 사용하지 않으면 전체에 대한 하나의 결과만 나올 것이다.
  • 모든 제품의 매출 합계를 하나의 행으로 반환하게 되어, 각 제품에 대한 매출 정보를 얻을 수 없다.

0개의 댓글