行ごとに更新するが、現在の行を更新した後に各行のコンテキストを再度評価したい。行を行単位で更新する
例:
ID Type Count Lag Lead FirstNotZero Calculate (CASE)
1 Ad-Aware 438584 438541 438602 438584 438584
2 Ad-Aware 438602 438584 0 438602 438602
3 Ad-Aware 0 438602 0 438602 438602
4 Ad-Aware 0 0 0 438602 438602
5 Ad-Aware 0 0 0 438602 438602
6 Ad-Aware 0 0 438746 438602 438602
7 Ad-Aware 438746 0 438782 438746 438746
8 Ad-Aware 438782 438746 438806 438782 438782
は私が計算した値を持つすべての0
の値を置き換えたいです。つまり、このロジックで計算する必要があります。
CASE
WHEN Count = 0 AND Lag != 0 AND Lead != 0 THEN (Lag + Lead)/2
ELSE FirstNotZero
END
だから、ラグとリードのCount = 0 and Lag and Lead values are known
、平均が計算されなければならないとき。
私が今必要としたいのは、1行を取得し、計算を評価し、必要に応じて更新し、行ごとに更新することです。
ここでの問題は、ID 6の行です。行5が計算されるとすぐに、行6の遅延が分かります。したがって計算結果は483674
[(438602 + 438746)/ 2]で、現在は438602
ではありません。
このような更新を行単位で実行するにはどうすればよいですか?たぶんCURSOR UPDATE
と?
はあなたがカーソルを通してそれを試したことがありますか?次の行の計算が前の行の計算値に依存する場合は、Cursorが唯一の選択肢だと私は考えます。 – Lali
6行目は438602 + 438746/2ではなく、438602 + 438782/2であるべきですか? –
あなたは置換値を計算する方法について論理を教えていますが、私が見る限り、あなたの例ではそれを適用できる行はありません。*カウント値が「0」のすべての*行には少なくとも1つ「Lag」または「Lead」も「0」に等しい。 –