值說我有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? –