我正在尝试计算表上的运行总计,同时限制查询返回的行数。
我的桌子看起来像这样:
create table TestTable
(
id int,
somedate date,
somevalue int
)
insert into TestTable values
(45, '01/Jan/09', 3),
(23, '08/Jan/09', 5),
(12, '02/Feb/09', 0),
(77, '14/Feb/09', 7),
(39, '20/Feb/09', 34),
(33, '02/Mar/09', 6)
我可以得到所有具有“价值”总和的行,如下所示:
select id,
somedate,
somevalue,
sum(somevalue) over(order by somedate) as runningtotal
from TestTable
我想将返回的结果限制在特定的日期范围内,同时仍然从表的开头计算运行总计。因此,例如,我想要日期在 2009 年 2 月 20 日或之后的所有行。然后,我希望我的结果集如下所示:
39 20/Feb/09 49
33 02/Mar/09 55
但如果我只是做 a where somedate > 20/Feb/09
,那么我得到
39 20/Feb/09 34
33 02/Mar/09 40
这不是我想要的,因为它只在窗口内计算运行总数。
有没有办法得到我想要的?