본문 바로가기

SQL/개념 정리

SQL로 EDA해보기

 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