https://school.programmers.co.kr/learn/courses/30/lessons/131533
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✔️ 풀이
1. SELECT
- 문제 조건에 맞게 PRODUCT_CODE와 SALES값을 조회한다.
- 이때, SALES값은 상품코드 별 매출액 (= 판매가 * 판매량) 합계이므로, PRODUCT_CODE로 그룹화 하여 각 상품 코드별 매출액 합계를 구해야 한다. 따라서 SUM을 사용하여 SUM(P.PRICE * OS.SALES_AMOUNT) 값을 SALES로 설정하여 조회한다.
2. FROM
- PRODUCT를 기준으로 OFFLINE_SALE 테이블을 INNER JOIN할 것이므로, PRODUCT로 설정한다.
3. INNER JOIN
- SALES값을 구하기 위해서는 OFFLINE_SALE 테이블의 판매량 값이 필요하므로, RPODUCT 테이블과 OFFLINE_SALE 테이블을 RPODUCT_ID값이 같은 것끼리 INNER JOIN한다.
4. GROUP BY
- 문제에서 상품 코드 별 매출액을 조회하는 조건이 있으므로, PRODUCT_CODE별로 그룹화 한다.
5. ORDER BY
- DESC를 사용하여 매출액을 기준으로 내림차순 정렬하고, 매출액이 같은 경우에는 상품 코드를 기준으로 오름차순 정렬해야 하므로, ASC를 사용하여 오름차순 정렬한다.
✔️ 코드
SELECT P.PRODUCT_CODE, SUM(P.PRICE * OS.SALES_AMOUNT) AS SALES
FROM PRODUCT AS P
INNER JOIN OFFLINE_SALE AS OS ON P.PRODUCT_ID = OS.PRODUCT_ID
GROUP BY P.PRODUCT_CODE
ORDER BY SALES DESC, P.PRODUCT_CODE ASC;
'✔️ Algorithm > Programmars' 카테고리의 다른 글
[프로그래머스/MySQL] 5월 식품들의 총매출 조회하기 (0) | 2023.09.03 |
---|---|
[프로그래머스/MySQL] 상품을 구매한 회원 비율 구하기 (0) | 2023.09.03 |
[프로그래머스/MySQL] 보호소에서 중성화한 동물 (0) | 2023.09.02 |
[프로그래머스/MySQL] 오랜 기간 보호한 동물(1) (0) | 2023.09.02 |
[프로그래머스/MySQL] 있었는데요 없었습니다 (0) | 2023.09.02 |
댓글