以下の問合わせは、取引日付の順序で並べた口座ごとの累積残高を戻します。
SELECT acct_number, trans_date, trans_amount, SUM(trans_amount) OVER (PARTITION BY acct_number ORDER BY trans_date ROWS UNBOUNDED PRECEDING) as balance FROM ledger ORDER BY acct_number, trans_date;
上記のSELECTの結果の例を示します。
acct_number | trans_date | trans_amount | balance |
---|---|---|---|
73829 | 1998-11-01 | 113.45 | 113.45 |
73829 | 1988-11-05 | -52.01 | 61.44 |
73929 | 1998-11-13 | 36.25 | 97.69 |
82930 | 1998-11-01 | 10.56 | 10.56 |
82930 | 1998-11-21 | 32.55 | 43.11 |
82930 | 1998-11-29 | -5.02 | 38.09 |