私は、各ユーザの日付カラムと天びんカラムを持っています。ユーザーがトランザクションを作成するたびに、新しい行がこのテーブルに追加されます。ユーザーが1日中に15回の取引を行い、5日間に取引を全く行わないことがあります。日付を比較し、それらの差を計算する、postgres
この1
date balance
2017-06-01 95.63
2017-06-01 97.13
2017-06-01 72.14
2017-06-06 45.04
2017-06-08 20.04
2017-06-09 10.63
2017-06-09 -29.37
2017-06-09 -51.35
2017-06-13 -107.55
2017-06-13 -101.35
2017-06-15 -157.55
2017-06-16 -159.55
2017-06-17 -161.55
同様の目標は、同じ日中に行われた正と負のトランザクションを選択し、その平均値や最小値を計算し、次の日transaction.If 1なしのトランザクションとしてそれを考慮することです前日の金額を使用する必要があります。
1ヶ月に1日ごとに金利を計算し、残高が更新されていないことを意味し、前日の残高を使用する必要があります。 仮に私のテーブルには、私は、重複した日を逃すとグループされた当時を追加した
date balance
1/6/2017 72.14
6/2/2017 72.14
6/3/2017 72.14
6/4/2017 72.14
6/5/2017 72.14
6/6/2017 45.04
7/6/2017 45.04
8/6/2017 20.04
9/6/2017 -51.35
10/6/2017 -51.35
11/6/2017 -51.35
12/6/2017 -51.35
13/06/2017 -107.55
14/06/2017 -107.55
15/06/2017 -157.55
16/06/2017 -159.55
17/06/2017 -161.55
のようになります。
これが完了したら、プラスの平日の日数を選択することができます。 8日間、平均的な正のバランスを計算し、それに0.4%を掛けます。
8*58.8525*0.004=0.23
負のバランスで同じことを行う必要があります。負の残高日数の異なる金利数を有する。当時の平均負の残高と8.49%を掛け合わせたものである。
9*-99.90555556*0.00849=-0.848
だから私の予想結果は、ちょうどこれら二つの列
Neg Pos
-0.848 0.23
私はそれpostgresの中にいることをどのように行うことができますを持っているのですか?関数OVERLAPは、日付を指定する必要があるので、実際には役に立ちません。私はどのように
ループの日を知らないと、重複があるかどうかを確認するだけでなく
。
欠落している日を見て、これらの欠落日ごとに前回の残高を使用してください。