相邻若干个统计

noliver 2009-10-02 09:07:58
表有两个字段A,B,A用来唯一的排序,B是数值类型。
现在我要加个C字段,统计该记录以上n个记录的B的和。有sql语句可以一次实现吗?
比如:

A B

1 3
2 4
3 2
4 3
5 2
6 1

n=2时,结果应该是

A B C

1 3 无
2 4 无
3 2 7
4 3 6
5 2 5
6 1 5

当然编程很容易实现,我现在想做个查询一步实现,可以吗?
...全文
65 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-10-03
  • 打赏
  • 举报
回复
select a,b,(select sum(b) from Table1 s where s.a<t.a and 2>(select count(*) from Table1 where a>s.a and a<t.a))
from Table1 t


如果你的数据上万,建议你还是用程序来实现吧。SQL语句并不是在所有情况下都是最有效的方法。
noliver 2009-10-03
  • 打赏
  • 举报
回复
不应该取b的max阿?
noliver 2009-10-03
  • 打赏
  • 举报
回复
哇,执行起来要死机阿!而且如果n〉2,岂不更惨/
ACMAIN_CHM 2009-10-02
  • 打赏
  • 举报
回复
select t1.a,t1.b,max(t2.b)+max(t3.b)
from (表 t1 left join 表 t2 on t1.a>t2.a)
left join 表 t3 on t2.a>t3.a
group by t1.a,t1.b
noliver 2009-10-02
  • 打赏
  • 举报
回复
a字段未必是连续的
ACMAIN_CHM 2009-10-02
  • 打赏
  • 举报
回复
select t1.a,t1.b,t2.b+t2.b
from (表 t1 left join 表 t2 on t1.a=t2.a+1)
left join 表 t2 on t1.a=t3.a+2

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧