如何用SQL计算复购概率?附计算示例与逻辑说明
复购概率计算逻辑与SQL实现
核心计算逻辑
你定义的「1次下单客户的二次复购概率」,本质是所有有过至少1次下单的客户中,完成至少2次下单的比例,对应公式:
复购概率 = (下单2次的客户数 + 下单3次的客户数) / 总下单客户数
代入示例数据:(350+130)/(1000+350+130) ≈ 32.43%
SQL实现方案
场景1:已有下单次数-客户数汇总表
假设存在汇总表customer_order_summary,结构为order_count(下单次数)、customer_num(对应客户数):
SELECT ROUND( (SUM(CASE WHEN order_count >= 2 THEN customer_num ELSE 0 END) * 100.0) / SUM(customer_num), 2 ) AS repurchase_rate FROM customer_order_summary;
执行后直接返回32.43,即32.43%的复购概率。
场景2:从原始订单表统计
如果只有原始订单表orders(含customer_id、order_id字段),先统计每个客户的下单次数再计算:
WITH customer_order_counts AS ( SELECT customer_id, COUNT(DISTINCT order_id) AS order_count FROM orders GROUP BY customer_id ) SELECT ROUND( (SUM(CASE WHEN order_count >= 2 THEN 1 ELSE 0 END) * 100.0) / COUNT(customer_id), 2 ) AS repurchase_rate FROM customer_order_counts;
这个语句先通过CTE生成每个客户的下单次数统计,再计算复购比例。
内容的提问来源于stack exchange,提问作者Michal David
相关产品推荐
相关产品推荐

