Skip to main content

RFM 分析

YeongHer

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_DIFFDAY_DIFF 是计算时间间隔,SUMCOUNT 分别计算销售额和订单数量。 上述规则可以动态修改,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。

1.1 客户RFM 分类

1.2 RFM 分类数据追踪

2. 公式定义

2.1 客户RFM 分类

3. 部分编译 SQL

3.1 客户RFM 分类