lagn matlab,sql 使用LAG和LEAD函数统计

本文介绍了SQL中的LAG和LEAD函数,这两个函数用于在查询中方便地获取同一字段的前N行或后N行数据,从而提高查询效率。示例展示了如何使用这两个函数以及如何结合PARTITION BY进行分组查询,以获取每个组内的前后年份利润数据。
摘要由CSDN通过智能技术生成

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

---- -------

---------- -------------

2003 West

88

2003 West 88

88

2003 Central 101

88

2003 Central 100

101

2003 East 102

100

2004 West 77

102

2004 East 103

77

2004 West 89

103

SQL> 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

88

2003 West 88

101

2003 Central 101

100

2003 Central 100

102

2003 East 102

77

2004 West 77

103

2004 East 103

89

2004 West

89

Lag函数为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

0

2003 Central 100

101

2003 East 102

0

2004 East 103

102

2003 West 88

0

2003 West 88

88

2004 West 77

88

2004 West 89

77

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值