SQL常见函数整理 _ lead() 向下偏移

1. 用法
是在窗口函数中使用的函数,它用于获取当前行的下一行(后一行)的某个列的值。具体来说,LEAD() 函数可用于查找任何给定行的下一行(后一行)的值,同时也可控制行数偏移量(offset)和默认值(default value)。

2. 基本语法

LEAD ( column [, offset [, default_value ]])  
OVER ( [ ORDER BY clause ] )
  • column 参数:指定要获取其值的列名称
  • offset 参数:指定要偏移的行数
  • default_value 参数:指定如果无法找到下一行,则使用的默认值
  • ORDER BY子句:用于指定窗口中的行顺序

3. 实际应用
在这里插入图片描述
假设今天的日期是 ‘2021-1-1’ 。
编写解决方案,对于每个 user_id ,求出每次访问及其下一个访问(若该次访问是最后一次,则为今天)之间最大的空档期天数 window 。
返回结果表,按用户编号 user_id 排序。
结果格式如下示例所示:
在这里插入图片描述


select user_id,max(diff) as biggest_window
from (select user_id,visit_date
        ,datediff(day,visit_date,lead(visit_date ,1 ,'2021-01-01') over(partition by user_id order by visit_date) ) as Diff
        from UserVisits ) a
group by user_id
order by user_id
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值