SQL 每月新增,复购人数,复购率

订单表
在这里插入图片描述

select 
  firstmon as '月份', 
  count(userid) as '新增', 
  sum(fugou) as '复购人数', 
  sum(fugou)/count(userid) as '复购率'
from
(
  select t1.firstmon, t1.userid, if(count(t1.userid)>1, 1, 0) as fugou
  from 
  (
    select userid, month(min(paytime)) as firstmon
    from `order`
    group by userid
  ) t1
  left join `order` t2
  on
    t1.userid = t2.userid and
    t1.firstmon = month(t2.paytime)
  group by
    t1.firstmon, t1.userid
) t3
group by firstmon;

猜你喜欢

转载自blog.csdn.net/itnerd/article/details/107879309
今日推荐