MySQL中用户订单复购率的计算
生活随笔
收集整理的这篇文章主要介绍了
MySQL中用户订单复购率的计算
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
1.项目需求(计算复购率)
订单表中有用户ID、订单金额、每笔订单的下单时间等信息,需要统计每个月在接下来几个月用户复购情况
目标分解
1.首先统计每个月下单的用户数
2.将每个月下单的用户数表自连接判断是否复购,同时计算复购人数
SELECT a.月份 as 购买月份, b.月份 as 复购月, COUNT(distinct(b.user_id)) as 复购人数 from (SELECT MONTH( create_time ) as 月份,user_id FROMorders GROUP BY月份,user_id) a join (SELECT MONTH( create_time ) as 月份,user_id FROMorders GROUP BY月份,user_id ) b on a.user_id = b.user_id and a.月份< b.月份 GROUP BY a.月份,b.月份3.统计每个月总用户下单数
SELECT MONTH( create_time ) as 月份,COUNT( distinct ( user_id ) ) 总用户数 fromorders GROUP BY月份;4.计算复购率,复购人数/总用户下单数
select 购买月份,复购月,复购人数,总用户数,CONCAT(ROUND(复购人数/总用户数,2) *100,'%') as 复购率 FROM (SELECT a.月份 as 购买月份,b.月份 as 复购月,COUNT(distinct(b.user_id)) as 复购人数 from (SELECT MONTH( create_time ) as 月份,user_id FROMorders GROUP BY月份,user_id) a join (SELECT MONTH( create_time ) as 月份,user_id FROMorders GROUP BY月份,user_id ) b on a.user_id = b.user_id and a.月份< b.月份 GROUP BY a.月份,b.月份 ) fg join (SELECT MONTH( create_time ) as 月份,COUNT( distinct ( user_id ) ) 总用户数 fromorders GROUP BY月份 ) zr on fg.购买月份 = zr.月份总结
以上是生活随笔为你收集整理的MySQL中用户订单复购率的计算的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: tipask mysql调取dedecm
- 下一篇: HiveSQL最近7/30日各品牌复购率