《LAG和LEAD统计函数的使用》由会员分享,可在线阅读,更多相关《LAG和LEAD统计函数的使用(3页珍藏版)》请在金锄头文库上搜索。
1、Oracle 中 LAG 和 LEAD 统计函数的使用如何使用 oracle 的 LAG 和 LEAD 等统计函数Lag 和 Lead 函数可以在一次查询中取出同一字段的前 N 行的数据和后 N 行的值。这种操作可以使用对相同表的表连接来实现,不过使用 LAG 和 LEAD 有更高的效率。以下是 LAG和 LEAD 的例子:SQL select year,region,profit ,lag (profit,1) over (order by year)2 as last_year_exp from test;YEAR REGION PROFIT LAST_YEAR_EXP- - - -200
2、3 West 882003 West 88 882003 Central 101 882003 Central 100 1012003 East 102 1002004 West 77 1022004 East 103 772004 West 89 103SQL select year,region,profit ,lead (profit,1) over (order by year)2 as next_year_exp from test;YEAR REGION PROFIT NEXT_YEAR_EXP- - - -2003 West 88 882003 West 88 1012003 C
3、entral 101 1002003 Central 100 1022003 East 102 772004 West 77 1032004 East 103 892004 West 89Lag 函数为 Lag(exp,N,defval),defval 是当该函数无值可用的情况下返回的值。Lead 函数的用法类似。Lead 和 Lag 函数也可以使用分组,以下是使用 region 分组的例子:SQL select year,region,profit ,2 lag (profit,1,0) over (PARTITION BY region order by year)3 as last_year_exp from test;YEAR REGION PROFIT LAST_YEAR_EXP- - - -2003 Central 101 02003 Central 100 1012003 East 102 02004 East 103 1022003 West 88 02003 West 88 882004 West 77 882004 West 89 77