문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/131533
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
판매중인 상품 정보(ID, 상품코드, 가격)를 담은 PRODUCT 테이블과 오프라인 판매 정보를 담은 OFFLINE_SALE 테이블이 주어짐
그 중 상품 코드 당 총 판매금액 (판매한 개수*판매액)을 출력
(총 판매금액을 기준으로 내림차순 정렬, 같다면 상품코드를 기준으로 오름차순 정렬)
풀이법 구상
ID값을 기준으로 Join을 이용하여 PRODUCT 테이블 내 가격정보와 OFFLINE_SALE 테이블 내 판매량 정보를 곱한 SALES 열 생성
코드 구현 (MySQL 사용)
SELECT PRODUCT_CODE, SUM(PRICE*SALES_AMOUNT) AS SALES
FROM PRODUCT JOIN OFFLINE_SALE
ON PRODUCT.PRODUCT_ID = OFFLINE_SALE.PRODUCT_ID
GROUP BY PRODUCT_CODE
ORDER BY SALES DESC, PRODUCT_CODE ASC
+) 삽질
처음에 이렇게 작성했다가 중복 행이 있는 줄 알고 DISTINCT 썼는데 틀렸음
혹시나하고 OFFLINE_SALE_ID 같이 출력해봤더니 중복행이 아니었음
-> 각각 다른 판매건수이므로 상품코드별로 다 합쳐야 총 판매금액을 구할 수 있어서 GROUP BY 사용
'Problem Solving' 카테고리의 다른 글
[프로그래머스] '평행' 문제풀이 (0) | 2024.01.26 |
---|---|
[백준] '등수 매기기' 문제 풀이 (1) | 2024.01.26 |
[백준] '수 정렬하기2' 문제 풀이 (1) | 2024.01.26 |
[백준] '소수' 문제풀이 (1) | 2024.01.26 |
[프로그래머스] '없는 숫자 더하기' 문제풀이 (0) | 2024.01.23 |