문제 : 🏆 가장 많이 팔린 품목은?
1. 각 고객이 구매한 모든 제품의 총 금액을 계산하고, 고객 이름, 총 구매 금액, 주문 수를 출력하는 SQL 쿼리를 작성해주세요.
CustomerName
|
TotalAmount
|
OrderCount
|
Alice
|
2800
|
2
|
Bob
|
1150
|
2
|
Charlie
|
800
|
2
|
> 답안에 오류가 있어 따로 수정.
2. 각 제품 카테고리별로 가장 많이 팔린 제품의 이름과 총 판매량을 조회하는 SQL 쿼리를 작성해주세요.
Category
|
Top_Product
|
TotalSold
|
Electronics
|
Laptop
|
3
|
Home
|
Coffee Maker
|
3
|
1. 알고리즘
1) 각 고객이 구매한 모든 제품의 총 금액을 계산하고, 고객 이름, 총 구매 금액, 주문 수를 출력
- 1단계: 먼저 Orders 와 Product 테이블을 합친다. 여기서 필요한 부분은 주문 총 금액, Ordercont 얻는것.
- 2단계: 그후 customer id 에 맞는 customername 구해주기
2) 각 제품 카테고리별로 가장 많이 팔린 제품의 이름과 총 판매량을 조회하는 SQL 쿼리를 작성
- 1단계: order 테이블에서 quantity 를 더해주고, 그걸 기준으로 RANK 만들기.
- 2단계: rank 값이 1인 걸 가져오기, 그 외에 Name, Category 가져오기
2. SQL 문
1번 문제
- 1단계: 먼저 Orders 와 Product 테이블을 합친다. 여기서 필요한 부분은 주문 총 금액, Ordercont 얻는것.
select CustomerID , Sum(p.Price*o.Quantity) TotalAmount, count(CustomerID) OrderCount
from Orders o
join Products p on p.ProductID = o.ProductID
group by 1
- 2단계: 그후 customer id 에 맞는 customername 구해주기
with OrdersSum AS(
select CustomerID , Sum(p.Price*o.Quantity) TotalAmount, count(CustomerID) OrderCount
from Orders o
join Products p on p.ProductID = o.ProductID
group by 1)
select c.CustomerName, o.TotalAmount, o.OrderCount
from OrdersSum o
join Customers c on o.CustomerID = c.CustomerID
2번 문제
- 1단계: order 테이블에서 quantity 를 더해주고, 그걸 기준으로 RANK 만들기.
select ProductID, sum(Quantity) as TotalSold, rank() over(order by sum(Quantity) desc) as rnk
from Orders
group by ProductID
- 2단계: rank 값이 1인 걸 가져오기, 그 외에 Name, Category 가져오기
with OrdersSum as (
select ProductID, sum(Quantity) as TotalSold, rank() over(order by sum(Quantity) desc) as rnk
from Orders
group by ProductID
)
select p.Category , p.ProductName , TotalSold
from OrdersSum o
join Products p on o.ProductID = p.ProductID
where rnk =1
'백엔드 부트캠프[사전캠프] > 문제풀이' 카테고리의 다른 글
[SQL 달리기반 레벨 5] 🦚 예산이 가장 큰 프로젝트는? (0) | 2025.02.02 |
---|---|
[SQL 달리기반 레벨 1] 🎨 데이터 속 김서방 찾기 (0) | 2025.02.01 |
[SQL 달리기반 레벨 4] 💸 가장 높은 월급을 받는 직원은? (0) | 2025.02.01 |
[SQL 달리기반 레벨 4] 🛒 단골 고객님 찾기 (0) | 2025.01.31 |
[SQL 달리기반 레벨 3] 💳 이용자의 포인트 조회하기 (0) | 2025.01.31 |