SQL/MY SQL 문제 풀이(프로그래머스)

[MYSQL] PROGRAMMERS_상품 별 오프라인 매출 구하기

SQL공부 2024. 2. 21. 23:17
반응형

SELECT PRODUCT_CODE, sum(PRICE * SALES_AMOUNT)SALES
FROM PRODUCT as p, OFFLINE_SALE as o
WHERE p.PRODUCT_ID = o.PRODUCT_ID
GROUP BY 1
ORDER BY 2 desc, 1

 

OFFLINE_SALE_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 오프라인 상품 판매 ID, 상품 ID, 판매량, 판매일을 나타냄

 

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

 

두 테이블을 조인 하여 나오는 값을 통해 각각 연결된 판매가와 판매량을 곱한 합계를 출력해야 하는 문제이다. 간단하게 두 테이블을 p와 o 로 alias 처리 한후 공통 된 컬럼인 PRODUCT_ID로 연결해 주었다.  그 후  PRODUCT ID 기준으로 값을 출력 해야하니 GROUP을 해당 컬럼 기준으로 해주었고 정렬도 맞추어 주었다. 근데 풀때 왜 자꾸 오답이 나오지? 하면서 확인해보니 SUM 처리를 해주지 않았다.

뭔가 싶어서 데이터를 전부 조건문 제외해가며 비교해 보니 SUM 처리를 하지않을경우 각각의 PRODUCT ID 매출액의 첫번쨰 값만 노출이 되었다. 다음번에 놓치지말고 써야 할 것 같다.

반응형