如何分析留存率,如何提高留存率和转化率

首页 > 上门服务 > 作者:YD1662024-01-14 19:25:40

selecta.用户id,a.登陆时间,b.登陆时间from用户行为信息表asaleftjoin用户行为信息表asbon a.用户id = b.用户idwherea.应用名称='相机';

联结后的临时表记为表c,那么如何从表c中查找出时间间隔(明天登陆时间-今天登陆时间)=1的数据呢?

(1)这涉及到计算两个日期之间的差值,《猴子 从零学会sql》里讲到对应单函数是timestampdiff。下图是这个函数的用法。

如何分析留存率,如何提高留存率和转化率(9)

select*,timestampdiff(day,a.登陆时间,b.登陆时间)as时间间隔fromc;

用case语句选出时间间隔=1的数据,并计数就是次日留存用户数

count(distinct casewhen时间间隔=1then用户idelsenull end) as 次日留存数

代入上面的sql就是:

select *,count(distinct when 时间间隔=1 then 用户idelsenull end) as 次日留存数from(select*,timestampdiff(day,a.登陆时间,b.登陆时间)as时间间隔fromc)group by a.登陆时间;

将临时表c的sql代入上面就得到了查询结果如下:

如何分析留存率,如何提高留存率和转化率(10)

3.次日留存率

如何分析留存率,如何提高留存率和转化率(11)

留存率=新增用户中登录用户数/新增用户数,所以次日留存率=次日留存用户数/当日用户活跃数

当日活跃用户数是count(distinct 用户id)

在上面分析次日留存数中,用次日留存用户数/当日用户活跃数就是次日留存率

select *,count(distinct when 时间间隔=1 then 用户id else null end) as 次日留存数 / count(distinct 用户id) as 次日留存率 from(select *,timestampdiff(day,a.登陆时间,b.登陆时间) as 时间间隔from c) as dgroup by a.登陆时间;

如何分析留存率,如何提高留存率和转化率(12)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.