https://school.programmers.co.kr/learn/courses/30/lessons/131533
1. JOIN 사용하기
오프라인 상품 판매 정보 테이블에 상품 정보 테이블을 이어붙여서, 하나의 테이블을 통해 판매 정보와 상품 정보를 확인할 수 있도록 JOIN을 사용했다.
두 table 모두 product_id를 가지고 있으므로, 해당 column을 JOIN에 사용해주었다.
JOIN한 결과는 다음과 같다.
2. GROUP BY + 계산식 사용하기
문제에서는 상품 코드(product_code) 별 매출액을 구하길 원했기에, product_code로 GROUP BY 해주었다.
매출액을 구하기 위해서는 상품 코드별 판매량을 구해야 하므로, SUM(sales_amount)로 상품 코드별 판매량을 구했다.
계산값에 price를 곱하면 매출액을 구할 수 있다.
3. 정렬하기
이후 문제에서 원하는 정렬 방식을 ORDER BY로 작성해준다.
정답 코드는 다음과 같다.
SELECT p.product_code,
SUM(s.sales_amount) * p.price AS sales
FROM offline_sale s
LEFT JOIN product p ON s.product_id = p.product_id
GROUP BY p.product_code
ORDER BY sales DESC,
p.product_code
'SQL > 문제풀이' 카테고리의 다른 글
[프로그래머스] 오랜 기간 보호한 동물 (1) (0) | 2024.01.02 |
---|---|
[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2024.01.02 |
[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (0) | 2023.12.28 |
[프로그래머스] 서울에 위치한 식당 목록 출력하기 (0) | 2023.12.27 |
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.12.27 |