lag()函数:查询当前行向上偏移n行对应的结果
该函数有三个参数:第一个为待查询的参数列名,第二个为向上偏移的位数,第三个参数为超出最上面边界的默认值。
lead()函数:查询当前行向下偏移n行对应的结果
该函数有三个参数:第一个为待查询的参数列名,第二个为向下偏移的位数,第三个参数为超出最下面边界的默认值。
实例:当前的sda加上前一条记录的sda
原表tt:
20220421 11.2323232333
20220422 12.34322318
20220423 14.093044
代码sql:
select
tradedate
,sda
,sda+lag(sda,1,0)over(ORDER BY tradedate)
as sum
from tt
运行结果:
20220421 11.2323232333 11.2323232333
20220422 12.34322318 23.575546413300003
20220423 14.093044 26.43626718
sum() over() 函数用于累加计算
实例:当前的sda加上前一条及以前的所有记录的sda
原表tt:
20220421 11.2323232333
20220422 12.34322318
20220423 14.093044
代码sql:
select
tradedate
,sda
,sum(sda)over(ORDER BY tradedate)
as sum
from tt
运行结果:
20220421 11.2323232333 11.2323232333
20220422 12.34322318 23.575546413300003
20220423 14.093044 37.6685904133