1. 概述
RFM(Recency, Frequency, Monetary) 分析是一种用于客户细分的方法,通过考察客户的最近购买频率、购买频率、以及购买金额三个维度, 对客户进行分类和评估。在Agile Query 中,RFM 分析只是一种客户分类方法,通过SEGMENT 函数即可实现。
示例如下:
SEGMENT(
CASE
WHEN MONTH_DIFF(NOW(), MAX(orders.order_date)) < 2
AND SUM(order_details.quantity * order_details.unit_price) > 1000
AND COUNT(orders.order_id) > 10 THEN '高价值客户'
WHEN DAY_DIFF(NOW(), MAX(orders.order_date)) < 50
AND SUM(order_details.quantity * order_details.unit_price) > 100 THEN '重要发展客户'
WHEN MONTH_DIFF(NOW(), MAX(orders.order_date)) > 4
AND SUM(order_details.quantity * order_details.unit_price) > 400 THEN '重要挽留客户'
ELSE '其它'
END,
customers.customer_id,
orders.order_date = LAST_YEARS(1)
)
tip
上述示例的表达式看似复杂,但其它逻辑非常清楚,其中MONTH_DIFF
和DAY_DIFF
是计算时间间隔,SUM
和COUNT
分别计算销售额和订单数量。
上述规则可以动态修改,Agile Query 查询时会实际编译。
MONTH_DIFF(NOW(), MAX(orders.order_date)) < 2
是计算最近一次购买时间小于 2 个月。
SUM(order_details.quantity * order_details.unit_price) > 100
是计算销售额大于 100。
COUNT(orders.order_id) > 10
是计算订单数量大于 10。