우당탕탕 개발일지

[SQL] 프로그래머스 JOIN: 상품 별 오프라인 매출 구하기 본문

SQL

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

민아당긴아 2024. 2. 8. 15:45

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설계

1. 일단 OFFLINE_SALE 테이블에서 상품ID 별 판매량을 구하기(GROUP BY)

상품코드(PRODUCT_CODE)별 매출약(판매가 * 판매량) 합계를 출력(GROUP BY, SELECT)

2. 매출액 기준 내림차순, 상품코드 기준 오름차순 정렬(ORDER BY)

PRODUCT_CODE와 SALES 열이 있는데, SALES = PRICE * SALES_AMOUNT

SQL 코드

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

기억할 내용

1. JOIN을 먼저 생각하고 그 다음에 하위의 것들을 생각하자

2. 그룹별 합을 구할 때 SUM을 어디다 적을지 자꾸 까먹는데, SELECT문에 SUM() 적으면 된다!