温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

sql server订单用户复购问题怎么解决

发布时间:2022-05-31 11:09:10 来源:亿速云 阅读:207 作者:iii 栏目:大数据

这篇文章主要介绍了sql server订单用户复购问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇sql server订单用户复购问题怎么解决文章都会有所收获,下面我们一起来看看吧。

运营需求拆解:

单一复购率公式(按周计算,需要计算从4.1-8.4的数据):

分子:本周和上周对同一商户都下过单的人数

分母:上周下过订单的总人数

注:需要考虑到可疑订单,即刷单的状况

需求拆解:难点在与分子计算;

需求进一步拆解:本周和上周对同同一商户下过单,则可以理解为用户的复购;

可以把用户和商户 看成是一组,计算他们的复购即可;

具体代码如下:

with tmp_weekly_user_god as (
   select
   concat(to_char(DATEADD(trade_date,-WEEKDAY(trade_date),'dd'),'yyyymmdd')
   ,'~' ,to_char(DATEADD(trade_date,6-WEEKDAY(trade_date),'dd'),'yyyymmdd'))  as  weekly_range
   ,weekofyear(trade_date) as weekly
   ,weekofyear(trade_date)+ 1 as next_weekly
   ,from_user_id
   ,to_user_id
   ,concat('-',from_user_id,to_user_id) as group_group  -- 组合
   from ypp_trade_flow
   where trade_type = 'ORDER' -- 交易订单
   And TO_CHAR(trade_date,'yyyymmdd')  between  '20190401' and '20190804'
   group by concat(to_char(DATEADD(trade_date,-WEEKDAY(trade_date),'dd'),'yyyymmdd')
   ,'~' ,to_char(DATEADD(trade_date,6-WEEKDAY(trade_date),'dd'),'yyyymmdd'))  
   ,from_user_id
   ,to_user_id
   ,weekofyear(trade_date)
)

-- 留存率计算

select
t1.weekly  `周`
,t1.weekly_range `周维度`
,'全部' as `类型`
,count(distinct t1.from_user_id) as `纯用户下单人数`
,count(distinct t1.group_group) as `一组下单人数`
,count(distinct t2.group_group) as `一组本周用户大神在上周继续下单人数`
--,concat('',round(count(distinct t1.group_group)/count(distinct t2.group_group),4)*100,'%') as `单一复购率公式`
from tmp_weekly_user_god t1
left join tmp_weekly_user_god t2
on t1.group_group = t2.group_group
and t1.weekly = t2.next_weekly
group by t1.weekly,t1.weekly_range

结果集如下:


sql server订单用户复购问题怎么解决

细节问题:

  • 周维度:如果只使用weekofyear 只是给了一个具体的数字,而不清楚具体的周开始时间和结束时间,因此可以加上,更直观,起代码如下:

concat(to_char(DATEADD(trade_date,-WEEKDAY(trade_date),'dd'),'yyyymmdd'),'~' ,to_char(DATEADD(trade_date,6-WEEKDAY(trade_date),'dd'),'yyyymmdd'))

拆分下

周开始时间:`to_char(DATEADD(trade_date,-WEEKDAY(trade_date),'dd'),'yyyymmdd')

周结束时间:to_char(DATEADD(trade_date,6-WEEKDAY(trade_date),'dd'),'yyyymmdd')

  • 运营的需求,细节还是有一点点问题,有没有发现,这个后续和运营沟通解决了;

关于“sql server订单用户复购问题怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“sql server订单用户复购问题怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI