비활동고객 기준 : 비구매일 90일 이상인 고객
필요 데이터 :
구매일 ➜ orders 테이블의 orderDate 데이터
구매자 ➜ orders 테이블의 customerNumber 데이터
조회방법
1. 마지막 구매일을 조회한다.
해석
비구매기간을 알기 위해 기준으로 잡을 날짜를 정해야한다.
때문에 max() 함수를 이용하여 가장 마지막으로 구매한 날짜가 언제인지 파악!
결과 ) 2005-05-31 일이 나오기 때문에 2005-06-01 을 기준으로 파악할 것이다.
2. 각 고객의 마지막 구매일을 구해준다.
해석
고객별로 마지막 구매일을 구해야하기 때문에 group by 를 이용해 고객을 기준으로 그룹화를 해준다.
그리고 고객들의 마지막 구매일을 구하기 위해 max() 함수를 이용하여 구해준다.
3. 기준일과 각 고객의 마지막 구매일의 차이를 구해준다.
해석
고객별 마지막 구매일을 구하는 select 절이 끝나야 차이를 구할 수 있기 때문에,
(2) 번의 내용을 서브쿼리로 이용하여
기준일 (2005-06-01)과 각 고객의 마지막 구매일의 차이를 구해준다.
이 때 datediff() 함수를 이용하는데, 이 함수는 인자에 있는 두 날짜값의 차이를 반환해주는 함수이다.
그렇기에 datediff(기준일, 각 고객별 마지막 구매일) 의 방법을 사용한다.
4. 비구매일이 90일 이상인 고객은 Churn, 아닌 고객은 Non-Churn 으로 구분하여준다.
해석
비구매기간(Diff) 가 있는 select 절이 끝난 후 구분할 수 있기 때문에
(3) 번의 내용을 서브쿼리로 이용해준다.
비활동고객, 활동고객을 구분할 때에는 case-when 문을 사용해준다.
5. 활동고객과 비활동고객의 수 조회하기
해석
활동고객과 비활동고객 별로 그룹화하고 count() 집계함수를 이용하여 분류별 고객수를 구해준다.
'DATABASE' 카테고리의 다른 글
리뷰 테이블 dataset2 데이터 (0) | 2023.11.23 |
---|---|
Q. 활동고객이 많이 구매하는 제품의 계열 조회하기 (4) | 2023.11.22 |
Q. 국가별 재구매 고객 구하기 (0) | 2023.11.16 |
Q. 국가별, 도시별 매출액 조회 (0) | 2023.11.15 |
등수 함수 RANK, DENSE_RANK, ROW_NUMBER (0) | 2023.11.07 |