Search
🛍️

Lv4. 단골 고객님 찾기

SQL의 기본적인 쿼리문을 작성할 수 있다면, 달리기반 과제에 도전해보아요. 단순 문법을 사용하는 것 뿐 아니라 내가 정말 원하는 데이터를 출력하기 위한 한 걸음이 될 거예요!

과제를 수행하고나 나면 할 수 있어요!

LEFT JOIN을 사용해 기본 테이블에 결합하고, 주문이 없는 고객도 포함하는 방법을 익힐 수 있다.
고객별로 주문 건수 및 총 주문 금액을 계산할 수 있으며, 이를 GROUP BYCOUNT, SUM을 사용해 처리할 수 있다.
나라별로 가장 많은 주문 금액을 사용한 고객을 찾기 위해 서브쿼리와 HAVING을 결합해 조건부 집계를 수행할 수 있다.
JOIN, 서브쿼리, GROUP BY, HAVING 등을 조합해 복잡한 쿼리 요구사항을 해결할 수 있다.
Notification: 과제 시작 전 확인할 내용!

 과제 시작 전 다음 내용을 셀프 체크해보세요.

SELECT, FROM, WHERE, JOIN 등의 기본 문법
LEFT JOININNER JOIN의 차이를 이해하고, 이를 활용해 테이블을 결합하는 방법
COUNT, SUM 등의 집계 함수를 사용해 데이터를 요약하는 방법을 이해
본격적으로 시작해 볼까요?

문제:

Orders 테이블:
OrderID
CustomerID
OrderDate
TotalAmount
101
1
2024-01-01
150
102
2
2024-01-03
200
103
1
2024-01-04
300
104
3
2024-01-04
50
105
2
2024-01-05
80
106
4
2024-01-06
400
Customers 테이블:
CustomerID
CustomerName
Country
1
Alice
USA
2
Bob
UK
3
Charlie
USA
4
David
Canada

요구사항:

1.
고객별로 주문 건수와 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.
a.
출력 결과에는 고객 이름, 주문 건수, 총 주문 금액이 포함되어야 합니다. 단, 주문을 한 적이 없는 고객도 결과에 포함되어야 합니다.
b.
기대결과
CustomerName
OrderCount
TotalSpent
Alice
2
450
Bob
2
280
Charlie
1
50
David
1
400
2.
나라별로 총 주문 금액이 가장 높은 고객의 이름과 그 고객의 총 주문 금액을 조회하는 SQL 쿼리를 작성해주세요.
a.
기대결과
Country
Top_Customer
Top_Spent
USA
Alice
450
UK
Bob
280
Canada
David
400

제약사항:

두 쿼리 모두 서브쿼리, JOIN, GROUP BY, HAVING 등을 사용해 풀 수 있어야 한다.
주문을 한 적이 없는 고객도 첫 번째 쿼리 결과에 포함되어야 한다.
완료하셨다면?
코드와 결과가 제시된 정답과 같다면?
과제를 수행하며 고민하고 검색했던 내용을 모아 TIL을 작성해주세요.
최종코드와 함께 업로드한 TIL을 제출해주세요.
원활하게 작동되는 정답코드를 퀘스트로 제출해주세요  https://forms.gle/PR6JANjQme2ynTBb9
정답과 다르다면?
아직 어려운 것이 당연합니다. 어떤 부분에서 어려웠는지, 매니저님께 1on1요청을 해주세요. 함께 풀어나가면 훨씬 쉬울거에요