MySQL_lead()函数_判断同一id同一列两行是否相等

假设有一个客户之前下了订单,想看看这次订单距离下一次下单时间相差多少天,这类问题可以通过 lead 函数来求解,Lag和Lead函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。实际应用当中,相比于 left join 等自连接方式的sql更加简洁。

 

函数语法:

lag(exp_str,offset,defval) over(partition by ..order by …)

lead(exp_str,offset,defval) over(partition by ..order by …)

其中exp_str是字段名(本例中为交易时间 order_time),offset是偏移量(本例中为1),defval默认值可以不定义。

 

代码如下:

select id,order_time
#上一次订单时间
,lag(order_time,1) over(partition by id order by order_time) last_order_time

#下一次订单时间
,lead(order_time,1) over(partition by id order by order_time) next_order_time

from order_main_table


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值