今天我们来分享一个常见案例,用SQL来计算用户留存率。 目录: 1. 案例数据 2. 思路分析 3. 完整代码 1. 案例数据 这里我们一共两份日志数据,分别是用户账号创建的日志以及用户登录的日志。...思路分析 所谓留存,就是指某日创建的账号在后续自然日登录的比例,比如3月1日新增账号创建数为100,在3月2日这部分用户登录数为51,那么3月1日新增用户的次日留存率为51/100=51%。...注意:我这里用的MYSQL环境 基于上述的理解,我们大概就有了以下思路: 考虑到用户每天登录的次数不一定只有一次,为了方面后续的数据处理,可以先对登录数据按照日期和用户id进行去重DISTINCT处理...完整代码 SELECT create_date , 新增用户数 , concat(CAST(ROUND((100 * 次日留存) / 新增用户数,2) AS char), '%') 次日留存率 ,...concat(CAST(ROUND((100 * 3日留存) / 新增用户数,2) AS char), '%') 3日留存率 , concat(CAST(ROUND((100 * 7日留存) / 新增用户数
前面我们介绍过《利用Python统计连续登录N天或以上用户》,这次我们聊聊怎么用python计算新增用户留存率。...3、留存率计算 1)使用透视表计算留存数 #使用透视表,计算创角日期对应用户第x天登录的数量(非重复计数) data = pd.pivot_table(df,values='role_id',index...)留存率计算(两列相除) #留存率计算 #用 1 days 列 除以 0 days为次日留存率,依次类推 #我们用for循环语句可以实现该算法 create_index = data.columns...4、索引名称调整并导出数据 #修改结果数据表的列索引名称,然后导出表即可 df.columns=['创角日期','注册玩家数','次日留存率','3日留存率','4日留存率','5日留存率','6日留存率...','七日留存率'] ?
关于留存的计算是我们分享业务走向一种非常重要的方式,所谓留存用户,是用户在某一段时间内开始使用某个功能,到后面某一段时间又使用这个应用的用户,我们称这批用户叫留存用户。...下面我们来看clickhouse实现留存,关于clickhouse有个专用的留存函数,来处理留存用户数。...) c:2020-01-02 注册并充值的1日留存数 d:2020-01-03 注册并充值的2日留存数 下面我们看下如何计算活跃,上面的例子需要多插入几条数据,我们需要计算3日活跃。...上面分别是 a:2020-01-01 注册数 b:2020-01-01 注册并充值人数活跃数 c:2020-01-02 注册并充值的1日活跃数 d:2020-01-03 注册并充值的2日活跃数 关于留存率或者活跃率我没有写例子...留存计算一般其实是针对于一天来计算 活跃是算一段时间的累计数
统计留存率之前先弄清一下留存率的概念,百度百科中是这么说的: 用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用应用的被认作是留存; 这部分用户占当时新增用户的比例即是留存率,会按照每隔1单位时间...顾名思义,留存指的就是“有多少用户留下来了”。留存用户和留存率体现了应用的质量和保留用户的能力。...简单点说,第一天新增加了100个用户,第二天这100个人有50个还有登录,第三天这100个人还有30个有登录。。。依次类推 那次日留存率为50%,三日留存为30% 。...在统计系统中经常需要统计用户留存率,这里整理下用户留存率统计的几种实现方式。...第二天有访问后retention更新为3 第四天访问 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 第三天没有访问,第四天访问后rentention更新为11 依次类推,接下来就是计算该天的留存
在AARRR模型中用户留存处于第三个环节,获取(Acquisition)、活跃(Activation)、留存(Retention)、收入(Revenue)、推荐(Referral)。...如果按照用户生命周期:新手期、成长期、成熟期、衰退期、流失期5个阶段来进行配比,他们的关系大致如下: 留存阶段在一个用户的生命周期中占据的时间最长,所以用户运营(除拉新外)要做的所有事情就是尽可能延长用户在...按照互联网APP用户留存率定义来划分,我们可以将用户留存率分成次日留存率、7日留存率、30日留存率,这是最笼统的留存看法,具体到某个APP,还要根据APP属性细看具体的留存指标,具体到每家企业/APP产品价值不同...用户留存率的四大方向 1....物质留存 做积分商城或者说积分体系,是目前最常见的物质提高用户留存率的手段,有很多不错的APP在积分商城方面都做了很好的先例,而且效果显著,如天猫、滴滴、赶集等。
言归正传,最近一直在忙用增上的事情,一直在想办法提高新用户留存。趁热打铁,今天我们就来讲讲,关于新用户(NU:New User)这块儿的一些思考和问题。 问题1:什么是新用户?...在这个阶段内,我们不仅需要提升用户短期内的转化率,还需要对产品的本分功能持续优化,这样才能不断提升用户的留存率。 问题3:如何提升新用户期留存率?...至于如何确定 多少时间,以及多少次什么行为,主要有三个步骤: 1、通过行为的留存率,我们能判断出哪个行为更重要,即什么行为 2、通过用户的留存率,我们能找到留存率拐点,即多少时间(一般是多少天) 3、通过这段时间内...,行为次数的留存率拐点,我们能找到多少次 当然,算法大佬们还可以通过行为与留存率的相关性计算,直接找到时间段&次数&行为,这里就不细说了。...我们可以通过提升漏斗转化率,以及引导用户完成固定时间周期内次数的行为,提升新用户的留存率。但是这个只是最基础的,更多的还需要计算链路贡献度,不断的去精细化迭代优化。
在互联网产品中,留存是指用户在起始(新增或使用产品)之后一段时间再次回到产品。留存率是指再次回到产品的用户数量与初始用户数量的比率。 新增用户留存: 新用户留存以用户新增作为留存起始条件进行计算。...示例:如果昨日新增的100个用户,其中30人在今日再次回到产品,则昨日的新用户次日留存率为30%。 新用户留存是最为常用的留存计算方式。在大多数情况下,如果没有特殊说明,留存=新用户留存。...活跃用户留存: 活跃用户留存以用户活跃作为留存起始条件进行计算 示例:如果昨日活跃的100个用户,其中40人在今日再次回到产品,则昨日的活跃用户次日留存率为40%。...留存率的时间粒度与计算公式 时间粒度:时间粒度可以分为日、周、月、年。 用户在新增或使用产品后当日回到产品的比率,计为当日留存率。 用户在新增或使用产品后第2天回到产品的比率,计为次日留存率。...(注:这里的周是指7天,而非自然周) 计算公式:最常见的用户留存率是以日的时间粒度做计算的,公式为:第1 天新增的用户,在第n天后依然有使用产品的用户数/ 第1 天的新增用户数。
一、题目 现有用户登录记录表,已经按照用户日期进行去重处理。以用户登录的最早日期作为新增日期,请计算次日留存率是多少。...----------+-------------+ 二、分析 维度 评分 题目难度 ⭐️⭐️⭐️⭐️ 题目清晰度 ⭐️⭐️⭐️⭐️⭐️ 业务常见度 ⭐️⭐️⭐️⭐️⭐️ 三、SQL 指标定义: 次日留存用户...:新增用户第二天登录(活跃)的用户; 次日留存率:t+1日留存用户数/t日新增用户; 1.根据登录日志,使用开窗函数计算出用户的最小登录时间作为新增日期first_day,然后计算当天日期和新增日期的时间差...login_date asc)) as date_diff from t_login_040 )t group by first_day order by first_day asc 查询结果 3.用次日留存数.../新增用户数据即为留存率,因为新增可能为0,所以需要先判断。
虽说定义方式不同,但大致思路和计算方式基本相同,本文将以用户活跃留存为例进行说明。 用户留存分析一般会分析两个指标:用户留存数和用户留存率。...以 2048年05月12日 的留存分析为例, 20480512的次日留存数 = 20480512日活跃用户 交集 20480513日的活跃用户数 20480512的次日留存率 = 20480512的次日留存数...下面是具体的定义: 3日留存率 = (第1日活跃的用户,在第3日还活跃的用户数)/第1日的活跃用户数 7日留存率 = (第1日活跃的用户,在第7日还活跃的用户数)/第1日的活跃用户数 30日留存率...= (第1日活跃的用户,在第30日还活跃的用户数)/第1日的活跃用户数 0x02 计算 首先说一下用户留存的计算难点在哪里。...如下图,是整个计算流程,我们设计了两张表:用户留存中间表和用户留存报表。注意一下用户留存表中的type字段,它表示的用户留存的类型,看注释可知每个取值的含义。 ?
衡量留存指标 第一个是次日留存,就是当天成为公司产品的新用户中第二天还在使用的用户有多少。 第二个是周留存,就是第一天成为产品新用户后,第七天还在使用产品的用户数。...活跃度高不等于留存好 在市场推动下,即使留存率很低产品的活跃度也可能很高,因为每天都会有新用户的涌入,提高产品的活跃度,但这种发展是不健康的发展。...因为留存一个用户付出的成本要远小于获取一个新用户。 3如何做留存?...b、用户留存率低的原因: 1)、存在程序漏洞、性能瓶颈。强行闪退、反应迟钝、灵敏性弱、体验差。亚马逊统计数据表明,网站的打开时间每多延迟100毫米闹,就意味着造成了100万美元的营收损失。...由于好多人会有强迫症,想打开应用,消除图表,这样使通知到达率高达不少。 本地通知,在外观上与正常的推送通知类似,不过所有的通知均是在预设的时间点到来时发起自本地,无须与服务器交互,不需要联网。
消耗日期 customer_id Integer 客户ID amount Integer 消耗金额 要求: 统计出头部客户、腰部客户、尾部客户在上个月(2020-06-01 ~ 2020-06-30)的留存情况...第一步,计算出上个月每个客户的消耗金额。...需要注意的是,在 GROUP BY 子句中使用了 SELECT 子句中的字段别名 customer_level,这种语法在 MySQL 上能编译通过,在其它数据库中则不行。 第三步,计算留存。...根据留存的定义,只要客户在本月中有消耗,就计入留存数。比如客户 A,A 在上个月的消耗金额是 40000,那么 A 属于头部客户,假如 A 在本月的消耗金额大于 0,A 就为【留存】贡献了 1 。...我们在 t1 之后插入表达式 t12,t12 用来计算每个客户的消耗金额和留存状态,它的脚本如下: t12 AS (SELECT t1.customer_id, t1.amount, IF(
在很多产品里都对应3种用户(新增用户、活跃用户、留存用户),搞清楚他们的概念和区别,对于运营和分析都非常有帮助。 那什么是新增用户,活跃用户,留存用户呢?...如果把一款产品看作我的一个鱼塘,那么使用产品的用户就是鱼塘里的鱼。 为了扩大鱼塘的规模,我每天都会从外部渠道买新的鱼放到鱼塘里,这些新买的鱼就是鱼塘里的新增用户。...剩下的一部分鱼感觉鱼塘没啥意思,就不活跃,经常呆在一个角落里思考人生,这些鱼就是不活跃用户。 随着时间的推移,一部分鱼觉得鱼塘没意思,就离开跑到其他鱼塘里了,这些鱼就是流失用户。...留下来的鱼就是留存用户。 你会看到,我的鱼塘有3种用户:新增用户,活跃用户,留存用户。其中活跃用户对应的是不活跃用户,留存用户对应的是流失用户。...下次我们继续聊聊反映这3种用户的指标: 对于新增用户使用指标日新增用户 对于活跃用户使用指标活跃率 对于留存用户使用指标留存率 最后记住这张图,就明白了这3种用户的区别:
对商家来说,如果用户“走了不再回来”,即小程序不能被用户反复使用,那就有些令人局促不安了。这就关系到小程序的留存能力,那么,如何才能有效地提高小程序的留存率?...微信官方显然也很重视这个问题,一直在升级、开放权限提高留存率,提升用户体验,加快流量变现。...这个功能在一定程度上提高了留存率,更方便C端用户的触达,能够大幅度的提高小程序的留存和活跃。...但除了依赖官方的升级提升留存率,商家还需要在主动运营上多下功夫,从以下几方面着手布局主动去触达用户,提高用户留存率。...利用营销活动提高用户复购率 从用户的消费心理上看问题,每次一个好的购物体验绝对能够大幅度提升用户的留存和复购率的。
【题目】: 某电商平台面试题: 下面为用户登录表,分别计算用户的次日、3日留存数及留存率 【解题思路】 此题的核心是怎么计算用户的留存数/留存率?...用户留存率是电商行业经常用到的指标,用户的留存数指“第一天登录,以后几天还继续登录的用户数”,"留存率=次日的留存数/当日总的用户数"。...因此先要计算出每日的总的用户数、次日的留存数,然后再计算留存率。...二、计算留存数及留存率 1.计算留存数 把第一步的结果作为临时表dates,用case when聚合函数筛选出符合间隔的天数,“1”代表次日留存,“3”代表3日留存,以此类推,然后把满足条件的用户ID...在电商行业、互联网行业经常要计算用户的留存率,怎么用sql语句构建并计算用户的留存数是非常重要的 2、Datediff()函数的应用 Datediff() 函数返回两个日期之间的天数,表达式: datediff
恰巧今天遇到了一个问题,在这里和大家分享一下,就是使用sql计算增长率的问题。...我数据库中的原始数据是这样的: year value 2016 200 2017 160 2018 230 2019 100 2020 250 但是我们前端需要展现的是一条折现,显示的是增长率,或者叫同比增长...去年的数据是t2, 那么增长率为 (t1 - t2)/ t2 , 通过分解等价于 t1/t2 -1 ,这应该比较好理解吧。...当t1.year=2018年是, t2.year就是2017年,这样t1和t2就代表了两个相邻年份的数据,有了两个相邻年份,我们就可以计算增长率了。...value/t2.value-1 rate from test t1 left join test t2 on t1.year = t2.year +1 order by t1.year 这就是计算增长率的方式
恰巧今天遇到了一个问题,在这里和大家分享一下,就是使用sql计算增长率的问题。...我数据库中的原始数据是这样的: year value 2016 100 2017 200 2018 140 2019 300 2020 150 2021 180 但是我们前端需要展现的是一条折现,显示的是增长率,...去年的数据是t2, 那么增长率为 (t1 - t2)/ t2 , 通过分解等价于 t1/t2 -1 ,这应该比较好理解吧。...当t1.year=2018年是, t2.year就是2017年,这样t1和t2就代表了两个相邻年份的数据,有了两个相邻年份,我们就可以计算增长率了。....value/t2.value-1 rate from test t1 left join test t2 on t1.year = t2.year +1 order by t1.year 这就是计算增长率的方式
社区通过鼓励开放对话和邀请各种思想、经验和人才的环境得到加强。认识到这一点,科技公司已经在努力增加员工的多样性;然而,这些数字仍然很麻烦,并且这种差异在开源世界...
对于很多新兴行业来说,用户留存都是一个比较突出的问题。因为用户就代表着市场的占有率,也代表商业的大盘,盘子越大,能产生的价值也越高,因此越来越多的企业开始重视用户留存的问题。...解释一下什么叫留存: 简而言之,顾客今天在我这里买东西了,明天依然来我这里买,那么这两天对于此用户就产生了留存的概念; 玩家今天登录客户端选择了打游戏,明天依然登录打游戏,这个也是用户留存; 浏览者今天观看我直播...对于大部分企业来说,这个概念习惯称之为用户留存,但是从互联网的角度来说,称之为流量也可以。 [strip] 用户留存,我们需要对用户的数量进行统计,统计每个周期内的新客数量以及新客持续购买的数量。...编写基础的DAX函数: C.CustomerNumber = DISTINCTCOUNTNOBLANK ( Fact_Sale[用户ID] ) 有了基础的计算指标,我们的思路可以扩展一下,用户留存我们观测的不是某一个具体的时间点...我们不光想知道每日留存的客户数量,我们还想知道留存率,继续编写度量值。
,或者当老用户留存率低的时候,是不是某个产品功能的问题,或者活动对老用户不友好而导致流失等等…… 今天,就给大家分享下如何用SQL实现留存率的计算,以及日常工作中如何分析留存率这个指标。...用户留存率有很多种:新客留存率、老客留存率、活跃用户留存率、购买留存率、或者某个功能使用用户的留存率等,通常计算的时间间隔为次日、3日、7日、30日、60日,根据业务不同需求可以选择不同的计算方式以及时间间隔...本次分享的留存率是关于新客留存率,计算公式:第N日新客留存率=某日的新注册用户在第N日内访问过APP的留存用户数/某日的新注册用户总数。...第二步: 利用已经计算出的时间计算用户留存率。...例如,想要计算用户次日留存率只需在上面的计算结果表找出登录时间距离注册日期的天数=1的数据,想要计算用户7日留存率,只需要在上表找出登录时间距离注册日期<=7的记录,代码如下: SELECT a.register_day
分组留存率计算起来比较简单,首先对用户进行分组,先按照维度分,再按照粒度分。通过基于这两方面的分组,可以将对比的差异值逐级锁定,寻找原因。 表1是一个典型的Cohort Analysis表格。...根据表1中的留存数据量,能够计算得到留存率,进而得到表2。 表2:留存率表 表2中,首先横向看表,能够看出每个月新增用户在后续各月的留存率情况。...对应表2中横向纵向两方面的分析,一家好的公司应该能够看到如下的趋势: 首先横向的留存数据终会在某个月份之后停留在一个固定的留存率上,比如A月获取的100个用户,在半年后每个月的留存率都稳定在60%,这就说明这...你可以看到每月的新增用户数量的变化情况,不同月份新增用户在后续每个月的留存情况,每个月的流失率情况等等。...总结: A公司的的拉新留存工作做的很好,但是有一个问题:随着拉新数量增加,留存率会降低。可能的原因是拉新渠道变多,导致用户的精准程度下降。
领取专属 10元无门槛券
手把手带您无忧上云