Thực hiện bài toán RFM với SQL 

Ngày đăng: 22/05/2023


Một doanh nghiệp muốn nâng cao doanh thu cũng như lợi nhuận từ việc kinh doanh, họ có thể áp dụng nhiều phương pháp như giá cạnh tranh, nâng cao sự phong phú trong sản phẩm, đẩy mạnh truyền thông quảng bá, … và một yếu tố vô cùng quan trọng không thể không nhắc đến đó chính là Giữ chân khách hàng. Để làm được điều này, doanh nghiệp cần chú trọng đầu tư vào các hoạt động chăm sóc khách hàng, và để có thể vận dụng hiệu quả nhất các chiến lược CSKH, các doanh nghiệp cần phải trải qua một quá trình quan trọng tính toán phân khúc khách hàng.

I. GIỚI THIỆU BÀI TOÁN RFM.

Phân khúc khách hàng là nhóm các đối tượng khách hàng được phân chia theo từng đặc điểm cụ thể. Từng phân khúc khách hàng khác nhau sẽ có những đặc điểm, hành vi mua hàng khác nhau, ảnh hưởng đến chiến lược kinh doanh của doanh nghiệp. 

Do đó, tùy vào phân khúc khách hàng khác nhau, doanh nghiệp nên chuẩn bị nội dung, thông điệp phù hợp hơn trong việc tiếp cận và chăm sóc khách hàng. Một chiến lược tiếp thị, bán hàng phù hợp với phân khúc, đối tượng khách hàng mục tiêu sẽ mang đến hiệu quả vượt trội trong hoạt động kinh doanh của doanh nghiệp. 

Vì vậy để có một chiến lược hiệu quả và thành công nhất, doanh nghiệp cần phải có một phân khúc khách hàng chính xác, phù hợp với tình hình kinh doanh. Vậy câu hỏi đặt ra là, làm sao để doanh nghiệp có thể phân loại khách hàng của mình một cách chính xác nhất ? 

2. Một số cách giải quyết 

Có nhiều cách để phân khúc khách hàng, bao gồm Phân khúc theo nhân khẩu học, phân khúc theo Hành trình mua hàng, phân khúc theo địa lý, … Và trong bài báo cáo này, chúng ta sẽ sử dụng loại phân khúc khách hàng dựa vào hành vi mua sắm, sử dụng mô hình phân tích RFM với công cụ SQL và Excel. 

3. Lựa chọn giải pháp 

Phân tích RFM (RECENCY –  FREQUENCY – MONETARY) là một kỹ thuật phân khúc khách hàng dựa trên hành vi mua hàng của họ trong quá khứ. Phân tích RFM gồm có 3 chỉ số chính: 

  • – Recency (R): Thời điểm giao dịch cuối cùng 

  • R0: Khách hàng đó vừa mới mua hàng của bạn hôm nay 

  • Rn: Khách hàng đó lần cuối mua hàng của bạn n ngày trước 

  • – Frequency (F): Tần suất mua hàng của khách hàng 

  • F0: Là khách hàng tiềm năng và chưa từng mua thứ gì từ bạn 

  • – Monetary (M): Số tiền giao dịch 

Dựa vào những chỉ số phân tích, chúng ta có thể phân loại khách hàng một cách tương đối chính xác dựa vào thói quen và lịch sử giao dịch của họ, từ đó có thể giúp các nhà quản lý đưa ra những chiến lược phù hợp để duy trì và xây dựng mối quan hệ đối với khách hàng.  

II. GIẢI QUYẾT BÀI TOÁN RFM

 
 
 
 
 
 

Recency – R 

 
 
 
 

Frequency – F 

 
 
 
 

Monetary – M 

 
 
 
 

1 

 
 

1 

 
 

1 

 
 
 
 

2 

 
 

2 

 
 

2 

 
 
 
 

3 

 
 

3 

 
 

3 

Trong đó: 

Khách hàng mua hàng gần đây nhất: R = 3 

Khách hàng mua hàng thường xuyên nhất: F = 3 

Khách hàng chi tiêu nhiều nhất: M = 3 

 
 
 
 
 
 

STT 

 
 
 
 

Tên trường 

 
 
 
 

Mô tả 

 
 
 
 

Code 

 
 
 
 

1 

 
 

CustomerKey 

 
 

mã khách hàng 

 
 

 

 
 
 
 

2 

 
 

CustomerName 

 
 

Tên khách hàng 

 
 

Concat_ws (‘ ‘, FirstName,MiddleName, LastName) 

 
 
 
 

3 

 
 

Recency  

 
 

Lần mua hàng gần đây nhất  

 
 

datediff (day,max(orderdate),’2014-01-28 00:00:00.000′)  

 
 
 
 

 

 
 

Frequency 

 
 

Số lần mua hàng trong 2 năm 

 
 

Count(distinct OrderDate)  

 
 
 
 

5 

 
 

Monetary 

 
 

Tổng giá trị mua hàng 

 
 

Sum(SalesAmount)  

 
 
 
 

6 

 
 

Customer segment 

 
 

Phân nhóm khách hàng 

 
 

 

Các bước thực hiện phân tích RFM 

Bước 1: Lọc ra các khách hàng mua hàng trong 2 năm gần đây 

Sử dụng Datediff 

select * from( 

select SalesOrderNumber 

,SalesOrderLineNumber 

,DATEDIFF(year,OrderDate,‘2014-01-28 00:00:00.000’) as RecentYear 

from FactInternetSales fis  

group by SalesOrderNumber,SalesOrderLineNumber, OrderDate 

) b 

 

where RecentYear <=1 

 

Bước 2: Tính các trường Recency, Frequency, Monetary 

  • Recency:   

datediff (day,max(orderdate),‘2014-01-28 00:00:00.000’) 

  • Frequency:  Count(distinct OrderDate) 

  • Monetary: sum(SalesAmount) 

  •  

Bước 3: Xây dựng hệ thống chấm điểm 

Recency:  

Khách hàng lần cuối mua hàng từ 0 – 120 ngày: 3 

Khách hàng lần cuối mua hàng từ 121240 ngày: 2 

Khách hàng lần cuối mua hàng từ 241370 ngày: 1 

Frequency Monetary 

Dựa vào Nguyên Pareto (80/20) phát biểu rằng: 1 nhóm nhỏ nguyên nhân dẫn đến phần lớn kết quả, trong kinh doanh người ta cho rằng 20% khách hàng đưa lại 80% doanh thu. 

 

Ta chia Frequency Monetary theo thang điểm: 

  • Top 20%: 3 

  • Từ top 20% đến 50%: 2 

  • Còn lại: 1 

 

thế cần chuyển F M thành % rank: 

Rank_table as( 

select * 

,PERCENT_RANK() over (order by Frequency) as F_Rank 

,PERCENT_RANK() over (order by Monetary) as M_Rank 

from datatable) 

 

Bước 4: Chấm điểm khách hàng 

Scoring as( 

select CustomerKey 

,case  

when Recency between 0 and 120 then 3 

when Recency between 121 and 240 then 2 

when Recency between 241 and 370 then 1 

else 0 

end as Recency_rank 

,case 

when F_Rank between 0.8 and 1 then 3 

when F_Rank between 0.5 and 0.8 then 2 

when F_Rank between 0 and 0.5 then 1 

else 0 

end as Frequency_Rank 

,case 

when M_Rank between 0.8 and 1 then 3 

when M_Rank between 0.5 and 0.8 then 2 

 when M_Rank between 0 and 0.5 then 1 

else 0 

end as Monetary_Rank 

 

from Rank_table) 

 

Bước 5: Phân khúc khách hàng 

Trước hết cần liên kết lại các điểm đã chấm cho các tiêu chí: 

concat(recency_rank, Frequency_Rank, Monetary_Rank) as RFM_Rank 

 

Dựa vào nhu cầu khả năng của công ty thể phân khúc khách hàng theo các cách khác nhau. Đây dụ về một số phân khúc thể áp dụng: 

 

 

 
 
 
 
 
 

Phân khúc 

 
 
 
 

RFM 

 
 
 
 

tả 

 
 
 
 

Chiến lược tiếp thị thể  

 
 
 
 

VIP 

 
 

333 hoặc 323 

 
 

Khách hàng mua gần đây nhất, thường xuyên hoặc khá thường xuyên chi tiêu cao 

 
 

Cần chương trình khuyến mãi khách hàng thân thiết 

 
 
 
 

Big Spenders 

 
 

%%3 

 
 

những khách hàng chi tiêu cao 

 
 

 

 
 
 
 

Frequent Customers 

 
 

%3% 

 
 

Khách hàng thường xuyên 

 
 

Thu hút, khuyến khích, thuyết phục họ mua các sản phẩm giá trị hơn 

 
 
 
 

Recent Customers 

 
 

3%% 

 
 

Khách hàng đã mua hàng gần đây 

 
 

Sử dụng các ưu đãi để thu hút 

 
 
 
 

At risk 

 
 

2%% 

 
 

Những khách hàng đã không mua trong một thời gian khá dài 

 
 

Ưu đãi giá mạnh mẽ, gửi email marketing, telesale,… 

 
 
 
 

Lost Inconsequential Customers 

 
 

111 

 
 

Những khách hàng đã mua trong một thời gian rất dài, không nhiều khả năng sẽ quay lại 

 
 

Không dành quá nhiều nỗ lực để níu chân khách hàng 

 
 
 
 

High risk 

 
 

1%% (khác 111) 

 
 

Những khách hàng đã mua trong một thời gian rất dài, 

 
 

Gần tương tự với nhóm At risk 

IV. ỨNG DỤNG MỞ RỘNG 

hình (phần query SQL) thể được chỉnh sửa để phù hợp với các yêu cầu khác nhau của daonh nghiệp 

Trong trường hợp thực tế, ta thay thế 2014-01-28 00:00:00.000 Bằng thời điểm hiện tại 

Tùy thuộc vào nhu cầu của doanh nghiệp thể chia thành nhiều tập khách hàng nhỏ chi tiết hơn hoặc các phân khúc tổng hợp hơn 

V. KẾT LUẬN 

Phân tích RFM một công cụ hữu ích cho mỗi doanh nghiệp, giúp họ trả lời những câu hỏi như 

  • – Khách hàng nào thuộc nhóm khách hàng quý giá trung thành với công ty ? 

  • – Khách hàng nào công ty nguy mất đã mất ? 

  • – Cần tập trung những chiến lược như thế nào đối với các tập khách hàng khác nhau ? 

Đây một dụ cho thấy ứng dụng lớn của SQL khoa học dữ liệu trong việc kinh doanh của mỗi công ty 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *