Lag和Lead分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag)和后N行的数据(Lead)作为独立的列。
这种操作可以代替表的自联接,并且LAG和LEAD有更高的效率。
语法:
-
/*语法*/
-
lag(exp_str,offset,defval) over()
-
Lead(exp_str,offset,defval) over()
-
-
-
1.
-
/*基础数据*/
-
select t.* from test1 t;
2.
-
/*用lag,lead分析以后的数据*/
-
select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,
-
lead(t.name,1,0) over(order by id desc) min_v
-
from TEST1 t;
3.
-
/*满足查询结果的数据*/
-
select i.* from(select t.id, lag(t.name,1,0) over(order by id desc) max_v, t.name,
-
lead(t.name,1,0) over(order by id desc) min_v
-
from TEST1 t) i where i.name='3aa';
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31349667/viewspace-2123345/
,如需转载,请注明出处,否则将追究法律责任。