
💻 코드1
SELECT P.PRODUCT_CODE ,SUM(O.SALES_AMOUNT * P.PRICE) AS SALES
FROM PRODUCT P JOIN OFFLINE_SALE O
ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY O.PRODUCT_ID
ORDER BY SALES DESC, P.PRODUCT_CODE ASC;
💻 코드2
SELECT P.PRODUCT_CODE, SUM(O.SALES_AMOUNT * P.PRICE) AS SALES
FROM PRODUCT P
JOIN OFFLINE_SALE O ON P.PRODUCT_ID = O.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE ASC;
코드1도 결과는 똑같이 나오지만 GROUP BY 기준을 O.PRODUCT_ID에서 P.PRODUCT_CODE로 바꿨다.
조인 조건 때문에 두 값이 사실상 같아서 결과에는 차이가 없지만, SELECT에서 실제로 보여주는 컬럼(P.PRODUCT_CODE)과 GROUP BY 기준이 서로 다른 테이블의 컬럼이면 헷갈리기 쉽다. 묶으려는 대상을 기준으로 그대로 GROUP BY 하는 쪽이 더 명확했다.
📖 새로 배운 부분
- SUM(수량 * 단가)처럼 집계 함수 안에 산술 연산을 넣으면, 행마다 곱셈을 먼저 계산한 다음 그 결과들을 합산해준다는 걸 확인했다.
참고
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'코테 > MySQL' 카테고리의 다른 글
| [프로그래머스, Java] FrontEnd 개발자 찾기 (0) | 2026.08.17 |
|---|---|
| [프로그래머스, SQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2026.08.02 |
| [프로그래머스, SQL] 보호소에서 중성화한 동물 (0) | 2026.08.02 |
| [프로그래머스, SQL] 오랜 기간 보호한 동물(1) (0) | 2026.08.02 |
| [프로그래머스, SQL] 있었는데요 없었습니다 (0) | 2026.08.02 |