窗口函数之-前后函数
应用:求同比增长、环比增长
- lead(expression,n):返回当前行的后n行 => shift(-n) 数据超前n阶,与之对齐的就是后n行的数据
- lag(expression,n):返回当前行的前n行=> shift(n)数据滞后n阶,与之对齐的就是前n行的数据
参数解析:
expression:作用的字段
n:阶数
练习题目:请输出连续出现3次及以上的Num
表结构:
示例:
# 需要注意的是如果出现3次以上只需要返回一个结果,所以返回结果需要加distinct关键字
# 窗口函数
select
distinct t.Num as ConsecutiveNums
from
( select
Num,
lag(Num,1) over(order by Id) as num1,
lag(Num,2) over(order by Id) as num2
from Logs
) t
where t.Num=t.num1 And t.num1 = t.num2