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


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

    2. 基本语法

    LEAD ( column [, offset [, default_value ]])  
    OVER ( [ ORDER BY clause ] )
    
    • 1
    • 2
    • 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    可能是全网最清晰的KMP算法讲解
    vim 工具的使用
    python requests 最牛攻略
    <栈和队列及模拟实现>——《Data Structure in C Train》
    SQL创建新的输出字段
    小成代码路的错误
    jsscript
    Java复习总结之正则表达式
    JVM加载class文件的原理简介说明
    Qt第二十六章:Nuitka打包教程
  • 原文地址:https://blog.csdn.net/gly1653810310/article/details/134400380