用户分群-RFM模型(SQL版)

项目背景

随着用户量级的增长,用户消费行为呈现分化,而现有统一发券、统一开展活动的转化率低、成本高。为了实现精细化用户运营,需要建立一套可量化、可执行的用户分层体系,对不同价值的用户提供差异化服务与营销策略。

业务目标

用户分群:明确区分高价值用户、潜力用户、流失风险用户。

差异化营销:支撑优惠券、Push、客服优先级差异化配置,为流失预警、人群运营提供基础标签。

业务目标:提升营销ROI、提升复购率和GMV。

运营策略

|--------|-----------|--------------|
| 分群 | RFM特征 | 运营动作 |
| 重要价值客户 | R↑F↑M↑ | VIP专线,新品优先体验 |
| 重要保持客户 | R↓F↑M↑ | 大额券、情感关怀 |
| 重要深耕客户 | R↑F↓M↑ | 跨品种推荐、捆绑销售 |
| 新客户 | R↑F↓M↓ | 首单返券、新手任务 |
| 一般客户 | R↓F↑M↓ | 低成本召回 |
| 流失客户 | R↓F↓M↓ | 低成本召回、暂停投入 |

**重要价值客户:**是平台的"金主",贡献了大部分利润,而且粘性高。他们追求尊贵感,如果给"满减券"反而掉价,提供"VIP专线"或大客户运营是为了提高服务体验,"新品优先体验"则满足了身份的象征。

**重要保持客户:**这类用户曾经很活跃、消费多,但最近没来,可能对平台有所不满或被竞品吸引。如果流失对平台造成的损失很大,所以需要强利益刺激作为"钩子"强行拉回。这是ROI最高的人群,值得花大成本去挽回。

**重要深耕客户:**最近消费额高,但购买频率不高。这类用户是认可平台的品质的,但需求可能没有被充分挖掘。他们有消费能力,可以通过跨品类推荐和捆绑销售来挖掘潜在需求,把一次性大消费转化为高频多品类消费。

**新客户:**最近才开始购买,对平台还在试用期。提供优惠券或首单返券是为了降低购买门槛;新手任务是为了引导用户熟悉平台功能,发现平台的核心用户价值,完成从"访客"到"活跃用户"的转化。

**一般客户&流失客户:**很久没来也没花过什么钱,属于边缘用户,对这部分用户投入高昂的营销费用是比较浪费的,如果召回的的成本是比较低的Push或短信,可以试一试。

实施流程

① 明确项目目标

② 确定统计周期 & 用户范围

③ 数据提取(订单事实表)

④ RFM 指标计算

⑤ RFM 打分(1--5分)

⑥ 用户分群映射

⑦ 分群验证 & 业务命名

⑧ 标签写入用户画像 / CDP

⑨ 运营策略落地

⑩ 效果复盘 & 周期性重算

SQL代码

表结构:order_info表名

|---------------|---------------|------------------------------|
| 字段名 | 字段类型 | 备注 |
| order_id | bigint | 订单号 |
| user_id | bigint | 用户id |
| order_date | date | 订单日期 |
| pay_time | datetime | 支付时间 |
| order_status | string | 订单状态(如:待支付、已支付、已完成、已取消、已退款等) |
| pay_amount | decimal(10,2) | 实付金额 |
| refund_amount | decimal(10,2) | 退款金额 |

sql 复制代码
-- 计算RFM

with order_count as ( -- 以用户id为维度的中间表
select 
    user_id,
    datediff(current_date(),max(order_date)) as R,
    count(distinct order_id) as F,
    sum(pay_amount-coalesce(refund_amount,0)) as M
from order_info
where order_status = 'success'
    and order_date>= date_sub(current_date,365)
group by user_id
)

user_score as( -- 计算得分
select 
    user_id,
    6-ntile(5) over(order by R ASC) as R_score,
    ntile(5) over(order by F DESC) as F_score,
    ntile(5) over(order by M DESC) as M_score
from order_count 
)

select 
    user_id,
    R_score,
    F_score,
    M_score,
    case 
        when R_score>=4 and F_score>=4 and M_score>=4 then '重要价值客户'
        when R_score<=2 and F_score>=4 and M_score>=4 then '重要保持客户'
        when R_score>=4 and F_score<=2 and M_score>=4 then '重要深耕客户'
        when R_score <= 2 and F_score <= 2 and M_score >= 4 then '重要挽留客户'
        when R_score >= 4 and F_score <= 2 and M_score <= 2 then '新客户'
        when R_score >= 4 and F_score >= 4 and M_score <= 2 then '潜力客户'
        when R_score <= 2 and F_score >= 4 and M_score <= 2 then '一般客户'
        else '流失用户'
        end as user_segment

from user_score 
相关推荐
hhzz7 小时前
全局实例跟踪(GIT):像人类一样定位目标——VideoCube基准与SiamFC实战全解析
大数据·python·计算机视觉·目标跟踪·数据分析
风流 少年20 小时前
数据分析:numpy
数据挖掘·数据分析·numpy
七夜zippoe1 天前
OpenClaw 实战案例:数据分析平台构建
服务器·网络·数据分析·openclaw·平台构建
想你依然心痛1 天前
AtomCode在Python数据科学项目中的使用体验:从数据分析到可视化
开发语言·python·数据分析
hu9245195591 天前
滞回曲线还在手动处理?一键滞回曲线平滑,提取骨架曲线、延性系数、耗能面积,批量搞定拟静力试验数据分析
数据挖掘·数据分析
YangYang9YangYan1 天前
2026大数据专业毕业学数据分析的价值
大数据·数据挖掘·数据分析
YangYang9YangYan1 天前
2026大数据专业填报志愿学数据分析的价值
大数据·数据挖掘·数据分析
NG4771 天前
【ETL零代码实战】基于Uniplore助睿数智的自媒体运营可视化分析
大数据·数据分析·etl·助睿数智·bi仪表盘
山海云端有限公司1 天前
全平台视频元数据解析 API 实战:从设计到调用一步到位
数据分析·api·restful·web开发·视频元数据
数据科学小丫1 天前
数据分析综合项目案例:幸福指数深度挖掘(KNN,随机森林)
python·算法·机器学习·数据分析