偶然间发现两个非常好用的函数:lead,lag,它们可以将数据进行位移,位移之后用来计算环比应该是很容易了。因为涉及到位移,所以会有数据会被挪位而消失。
-
lag :形象的理解就是把数据从上向下推,上端出现空格
-
lead :形象的理解就是把数据从下向上推,下端出现空格
lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的offset,第三个参数是 超出记录窗口时的默认值。举例如下:
原始数据表:items
运用lag函数:
select *,lag(item_brand,1,0) over (order by item_id) from items
运用lead函数:
lag函数在连续问题上的用法:
select distinct(Num) ConsecutiveNums from
(select *,
lag(Num,1,0) over (order by Id) Num1 ,
lag(Num,2,0) over (order by Id) Num2
from Logs) a
where Num=Num1 and Num1=Num2