关注MySQL高级应用窗口函数之偏移分析函数

本文探讨了MySQL中的窗口函数,特别是lead()和lag()在偏移分析中的应用。通过案例展示了如何查询用户支付时间偏移、超过10天的用户数以及每年支付间隔最长的用户。详细讲解了实现步骤,并提供了SQL查询代码。

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

2.2 案例

查询出用户【yantian】和【lisi】的时间偏移(后N行)

分析:通过lead()窗口函数进行实现

SELECT

user_name,

pay_time,

lead( pay_time, 1, pay_time ) over ( PARTITION BY user_name ORDER BY pay_time ) lead1,

lead( pay_time ) over ( PARTITION BY user_name ORDER BY pay_time ) lead2,

lead( pay_time, 2, pay_time ) over ( PARTITION BY user_name ORDER BY pay_time ) lead3,

lead( pay_time, 2 ) over ( PARTITION BY user_name ORDER BY pay_time ) lead4

FROM

user_order

WHERE

user_name IN ( ‘lisi’, ‘yantian’ );

复制代码

运行结果

05.MySQL高级应用窗口函数(四)02.jpg

2.3 案例

查询出支付时间间隔超过10天的用户数

分析:

  • 同一用户,相邻的订单进行下单时间比较,如果相邻订单下单时间间隔超过10天,那么这个用户就是需要统计的

  • 在这个过程中,需要进行相邻订单支付时间相减

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值