[프로그래머스] 오프라인 매출 구하기 (Oracle)

박신희·2022년 11월 7일
0

[풀이] 프로그래머스

목록 보기
32/33
post-thumbnail

📌 풀이 과정

  • 조인할 칼럼 : PRODUCT_ID
  • 맨처음에는 한꺼번에SUM(SALES_AMOUNT) * P.PRICE를 하려고 했는데, GROUP BY를 할 경우에는 그렇게 하면 안돼서, (PRODUCT_ID로 그루핑을 했기 때문에, 그 외의 칼럼은 안됨! 집계함수이면 되지만) 나눠서 해줬다.
  • 먼저, OFFLINE_SALE 테이블에서 PRODUCT_ID별 SALES_AMOUNT의 합을 구해주고 그걸 서브쿼리로 만들어준 다음 조인했다!

🤜 풀이 코드

SELECT P.PRODUCT_CODE, AMOUNT*P.PRICE AS SALES
FROM PRODUCT P, ( SELECT PRODUCT_ID, SUM(SALES_AMOUNT) AS AMOUNT
                FROM OFFLINE_SALE 
                GROUP BY PRODUCT_ID ) O
WHERE P.PRODUCT_ID=O.PRODUCT_ID
ORDER BY SALES DESC, P.PRODUCT_CODE;

🤜 더 최적화된 코드

SELECT p.product_code, SUM(p.price * o.sales_amount) AS sales
FROM product p, offline_sale o
WHERE p.product_id = o.product_id
GROUP BY p.product_code
ORDER BY sales DESC, product_code;

집계함수 안에 쓰면 되는거였어!
이렇게 또 알아갑니ㄷr..😂
ref.
https://honeynyancat.tistory.com/27

profile
log my moments 'u')/

0개의 댓글