に固定値を持ち、私はしかし窓関数
AsOfDate Fruit Delta
12/8/2016 Apple 10
12/7/2016 Apple -5
12/6/2016 Apple 15
12/4/2016 Apple 30
FruitTableテーブルがあるとし、それが設計されています。
Iは出力したい:
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であり、そして2015年12月7日は30 + 10 = 40 出力12/6/2016 = 12/4/2016 + 12/7/2016 + 12/8/2016
特定の行を指定する方法はありますかOVER句、またはアプローチする最善の方法は何でしょうか?私は
は、サンプルデータと質問が接続されている場合は、
を確認することができますありがとうございSQL Serverを使用していますか?たとえば、あなたのデータと比較すると、この作品は "30/6/2016の出力は30 +(-5)+ 10 = 35で、2016年12月7日は30 + 10 = 40"です。 2016年6月6日から来ていますか? – DVT
私はあなたのロジックを全く理解していません。 –
以前の値を取得するには、 'LAG()'を使用しますが、あなたのロジックについてはわかりません。最初の価値はどのように30ですか? –