用户行为分析之时间间隔mysql实现

这篇博客介绍了如何在MySQL中进行用户行为分析,特别是针对用户登录时间间隔的计算。通过lead()函数和left join + row_number两种方法,解决在最近30天内找出用户两次登录间隔小于3天的场景。作者提醒,对于复杂时间查询,join方法可能效率较低,推荐使用MySQL8及以上版本支持的lead() over()函数,并引用了分析师小帅比在知乎上的分享作为实用参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题简介

实际业务中会有很多关于时间间隔的分析,例如有30%用户使用产品或某一功能的时间间隔是2天,50%用户产品使用间隔是7天,15%用户产品使用间隔是10天,5%用户产品使用间隔大于15天。

那么以上各类用户对应的人均付费情况、人群画像是否有什么区别,是否还有特殊的隐形行为,是否可以进行转化?

大家可以发散思路,这里只是举例

二、举例数据(login_data)

user_id login_time
aa 2021-10-10 12:10:36
bb 2021-10-12 09:20:50
aa 2021-10-10 20:10:36
bb 2021-10-13 10:10:50
cc 2021-10-11 05:00:50

user_id是每个用户的唯一ID,login_time是用户登陆时的时间,本次求解在最近30天内,用户2次登陆间隔小于3天时间的有多少次。
例如a 在10月1日登陆了,10月2日也登陆了,那这就算1次,小于多少分钟也是可以的,这里看业务具体怎么定义。

三、实现方法

1.lead()函数

with t_1 as
(-- sql_1 start
select user_id,
		login_time,
		lead(user_id, 1, null) over(partition by user_id 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值