(私はPostgreSQLを使用しています)
トランザクションをアカウントに保存するテーブルがあります。この質問のために、次のように構成されていると想像してください。
create table transactions (
timestamp timestamp with time zone not null,
amount decimal(6,2) not null
);
任意の時点での残高は、次の方法で取得できます。
select sum(amount) as balance from transactions where timestamp < 'point in time';
amount
バランス (その時点までの s の合計) が特定の値 (私にとって最も興味深い値は 0 ですが、一般的な解決策があればよいでしょう) に等しいすべての期間をどのように見つけることができますか?
balance
独自の列への非正規化を含む解決策を認識しています。他の理由でそれをしたくないので、上記のスキーマを使用して提案を探しています。