Lv4. 단골 고객님 찾기
요구사항
- 고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.
- 출력 결과에는 고객 이름, 주문 건수, 총 주문 금액이 포함되어야 합니다. 단, 주문을 한 적이 없는 고객도 결과에 포함되어야 합니다.
- 기대결과
SELECT c.CustomerName, COUNT(CustomerID) OrderCount, SUM(TotalAmount) Totalspent
FROM Orders o LEFT JOIN Customers c ON o.CustomerID = c.CustomerID
GROUP BY 1
두 데이터 테이블을 left join 해주고 공통된 데이터가 있는 컬럼으로 묶어준다.
각 이름별로 주문 건수와 총 주문 금액을 알아야 하기에
CustomerName을 GROUP BY 해주고 주문 건수는 COUNT()로, 주문 금액은 SUM()을 사용한다.
- 나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.
- 기대결과
SELECT Country,
Top_Customer,
Top_spent
FROM
(
SELECT Country,
CustomerName Top_Customer,
Top_spent,
RANK() OVER (PARTITION BY Country ORDER BY Top_spent DESC) ranking
FROM
(
SELECT Country,
CustomerName,
SUM(TotalAmount) Top_spent
FROM
(
SELECT c.Country,
c.CustomerName,
o.TotalAmount
FROM Orders o LEFT JOIN Customer c ON o.CustomerID = c.CustomerID
) a
GROUP BY 1, 2
) b
) c
WHERE ranking = 1
ORDER BY 1 DESC
'TIL > 사전캠프 퀘스트' 카테고리의 다른 글
TIL 2024-09-23(SQL_달리기반 3.) (0) | 2024.09.23 |
---|---|
TIL 2024-09-23(SQL_달리기반 2.) (0) | 2024.09.23 |
TIL 2024-09-20(SQL_달리기반 1.) (0) | 2024.09.20 |
TIL 2024-09-20( JAVA_걷기반 반복문 연습하기 Part 1~3) (0) | 2024.09.20 |
TIL 2024-09-20( SQL_걷기반 마지막 문제 ) (1) | 2024.09.20 |