值说我有FruitTable保持固定在窗函数
AsOfDate Fruit Delta
12/8/2016 Apple 10
12/7/2016 Apple -5
12/6/2016 Apple 15
12/4/2016 Apple 30
但是一个表,它被设计成2016年12月4日(昨天)有我们总共持有的那一天。
欲输出:
Date Fruit Cumulative
12/8/2016 Apple 30
12/7/2016 Apple 40
12/6/2016 Apple 35
12/5/2016 Apple 50
这在像感计算:
SELECT AsOfDate,
Fruit,
SUM(Delta) OVER (PARTITION BY Fruit ORDER BY AsOfDate DESC ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS CUMULATIVE
FROM FruitTable
所以2016年12月6日输出为30 +(-5)+ 10 = 35和12/7/2016是30 + 10 = 40 输出12/6/2016 = 12/4/2016 + 12/7/2016 + 12/8/2016
有没有办法指定一个特定的行OVER子句或什么是最佳方法?我使用SQL SERVER
谢谢
你可以检查样本数据和问题是有联系吗?例如,比较你的数据,这篇文章“所以12/6/2016输出是30 +(-5)+ 10 = 35和12/7/2016是30 + 10 = 40”,其中-5和10来自于12/6/2016? – DVT
我完全不理解你的逻辑。 –
要获得以前的值,可以使用'LAG()',但不确定你的逻辑。第一个值是30? –