データベースにはtransactions
列を持つテーブルがあります: account_id
、date
、transaction_value
(符号付き整数)。別のテーブル ( account_value
) には、各アカウントの現在の合計値が格納されます。これは、アカウントtransaction_value
ごとのすべての の合計です。テーブルのトリガーで更新されtransactions
ます (つまり、INSERT、UPDATE、および DELETE を使用してtransactions
、トリガーを起動して を変更しaccount_value
ます)。
新しい要件は、過去 365 日間のアカウントの合計取引額のみを計算することです。以前の合計ではなく、現在の現在の合計のみが必要です。この値は、 とほぼ同じ頻度で頻繁に要求されますaccount_value
。
この「スライディング ウィンドウの合計」を効率的に実装するにはどうすればよいでしょうか。新しいテーブルは大丈夫です。毎回1年の範囲を超えて合計するのを避ける方法はありますか?