재구매 기준 : 바로 다음년도 구매만 인정, 아닐 시 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
'DATABASE' 카테고리의 다른 글
Q. 활동고객이 많이 구매하는 제품의 계열 조회하기 (4) | 2023.11.22 |
---|---|
Q. 활동고객과 비활동고객 파악하기 (0) | 2023.11.18 |
Q. 국가별, 도시별 매출액 조회 (0) | 2023.11.15 |
등수 함수 RANK, DENSE_RANK, ROW_NUMBER (0) | 2023.11.07 |
Q. 년도별 고객 1인의 평균 구매액을 조회해보자 ! (0) | 2023.11.07 |