SQL SERVER 窗口函数4 偏移函数:LAG、LEAD 、FIRST_VALUE、 LAST _VALUE、NTH_VALUE

  1. 偏移函数
    窗口偏移函数包含2种:一种是便宜量相对于当前行的,包括LAG 和LEAD
    另一类偏移量是相对于框架开端和末尾,包含 FIRST_VALUE、  LAST _VALUE、 NTH_VALUE ,
  2.  LAG、LEAD
    允许我们从窗口分区中,根据给定的相对于当前行的前偏移量(LAG)或后偏移量(LEAD),并返回对应
    行的值,默认的偏移量为1。当指定的偏移量没有对用的行是,LAG 和LEAD 默认返回 NULL,当然可用其他
    值替换  LAG(val,1,0.00) 第3个参数就是替换值。
    SELECT *, 
    LAG(ProductPrice) OVER(ORDER BY ProductPrice) AS PreValue,
    LEAD(ProductPrice) OVER(ORDER BY ProductPrice) AS NextValue
     FROM  OrderInfo
    

    LAG、LEAD和其他函数一样都支持 PARTITION 进行分区查询,此处就不说明了。
  3.  FIRST_VALUE、  LAST _VALUE
    可以查看分区内排序后,第一个值和最后一个值
    SELECT *, 
    FIRST_VALUE (ProductPrice) OVER(PARTITION BY ProductName ORDER BY ProductPrice) AS FirstValue,
    LAST_VALUE (ProductPrice)  OVER( PARTITION BY ProductName ORDER BY ProductPrice 
                                     ROWS BETWEEN CURRENT ROW 
    				 AND UNBOUNDED FOLLOWING
    			      ) AS LastValue
     FROM  OrderInfo

     
  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值