본문 바로가기
DATABASE

Q. 국가별 재구매 고객 구하기

by nyang2 2023. 11. 16.

재구매 기준 : 바로 다음년도 구매만 인정, 아닐 시 NULL 매칭

필요 데이터 : 

구매년도 ➜ orders 테이블의 orderDate 데이터

구매자 ➜ orders 테이블의 customerNumber 데이터

국가정보 ➜ customers 테이블의 country 데이터

 

조회방법

1. 이전년도, 다음년도 각각의 데이터를 추출하기 위해 같은 테이블을 join 해준다.

해석
orders table 2개를 호출한다.
A 이전년도, B 다음년도

join 조건에 재구매 고객을 추려내기 위해 조건을 추가한다.
조건 ➜ 이전년도 = 다음년도 - 1 ➜ substr(A.orderDate,1,4) = substr(B.orderDate,1,4) - 1
년도만 추출하기 위해 substr() 사용 !

필요한 데이터를 추출한다. (customerNumber, orderDate)

 

 

2. 국가 정보를 가져오기 위해 (1) 번의 내용과 customers 테이블 join 을 해준다.

해석
orders 테이블과 customers 테이블은 customerNumber 의 데이터를 이용해 join 해줄 수 있다.

 

 

3. 국가별 연도마다 이전년도와 다음년도에 몇명의 고객이 구매를 했는지 조회한다.

해석
국가별, 연도별로 묶기 위해 group by 를 이용해 그룹화 해준다.
이전년도와 다음년도 고객을 count() 집계 함수를 이용해 구하는데, 이 때 같은 년도에 동일한 고객이 있을 수 
있기 때문에 중복을 제거해주어야 한다.

 

 

4. (3) 번의 내용을 이용하여 국가별 재구매율 구하기

해석
국가별로 묶어야 하기 때문에 group by 를 이용하여 국가로 그룹화 해준다.
재구매율 = 이전년도 구매자 수 / 다음년도 구매자 수 = B_CTN / A_CTN