前の列と現在の列の差を計算し、increase
という名前の新しい列にしたいとします。このため、私はlag
window functionを使用しています。前の列が存在しないため、最初の列の値は定義されていません。私は3番目のパラメータがデフォルト値を指定することを知っています。しかし、それは依存しています。最初の行については、別の列の値を使用したいと思います。現在の行からcount
のいずれかです。これは、私が必要とする最初の行についてカウントするために0が増加することを前提としています。 関数の3番目の引数として列名を指定すると、正しく機能せず、どちらも0を使用しません。どのようにすることができますか?私はかなりランダムな結果や負の数など、奇妙な結果を得ています。ラグ関数を使用して現在の行の値にアクセスする
SELECT *, mycount - lag(mycount, 1) OVER (ORDER BY id, messtime ASC) AS increase FROM measurements;
ウィンドウ関数は、どちらかの入れ子にすることはできません。
ERROR: window function calls cannot be nested
このサンプルデータでは、いくつかのサンプルデータ(12行)と正しいクエリ結果が必要です。 –