US E-Commerce Records 2020 데이터 셋
1. records 테이블에 들어있는 'JP-15520' 유저의 데이터를 확인해봅시다.
해당 유저가 주문을 한 횟수는 몇 번인가요?
| SELECT count(*) FROM records WHERE customer_id = 'JP-15520' |
6번(오답)
| SELECT count(DISTINCT order_id) FROM records WHERE customer_id = 'JP-15520' |
주문 횟수는 물어봤으니까 order_id를 카운트해야 함
한번 주문할 때 여러 물품을 주문할 수 있으므로 DISTINCT로 중복 계수 방지
2. records 테이블에 들어있는 'JP-15520' 유저가 주문한 총 금액은 얼마인가요?
| SELECT SUM(sales) FROM records WHERE customer_id = 'JP-15520' |
1824.184
3. records 테이블에 들어있는 'JP-15520' 유저가 가장 마지막으로 주문을 했던 날짜는 언제였나요?
| SELECT order_date FROM records WHERE customer_id = 'JP-15520' ORDER BY order_date DESC LIMIT 1 |
2020-12-22
| SELECT MAX(order_date) FROM records WHERE customer_id = 'JP-15520' |
# 날짜 변수에도 MAX/MIN 함수 사용할 수 있음
4. customer_stats 테이블에서 'JP-15520' 유저의 데이터를 뽑아서 records 테이블로 확인한 데이터와 숫자들을 비교해봅시다.
똑같은 수치가 나왔나요?
| SELECT * FROM records WHERE customer_id = 'JP-15520' |
Yes
5. records 테이블을 이용하여 아래 결과를 출력하려면?

| SELECT customer_id ,MAX(order_date) AS last_order_date ,COUNT(DISTINCT order_id) AS cnt_orders ,SUM(sales) AS sales FROM records GROUP BY customer_id |
# 고객별(customer_id별) 데이터 값을 추출해야 하기 때문에 GROUP BY 필요!!

*본 내용은 데이터리안 'SQL 데이터 분석 캠프 입문반' 을 수강하며 작성한 내용입니다.
'SQL > 개념 정리' 카테고리의 다른 글
| [SQL] UNION (0) | 2023.06.01 |
|---|---|
| [SQL] JOIN (0) | 2023.05.31 |
| [SQL] WEEK3 (0) | 2023.05.23 |
| [SQL] CASE를 활용한 데이터 피봇 (0) | 2023.05.18 |
| [SQL] CASE WHEN 조건문 (0) | 2023.05.18 |