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

 

    原文作者:Reikooo
    原文地址: https://blog.csdn.net/weixin_38002569/article/details/83820525
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞