私はPostgreSQL 8.2を使用しています。これが私がこの質問をしている主な理由です。私はPostgreSQLのこのバージョンでは、他のいくつかの先行カラム(Bという名前をつけてください)の累積最小値を持つカラム(名前をCにします)にしたいと思います。従って、列Cのn番目の行は、ある順序付けのために行1からnのBの値の最小値でなければならない。列A以下の例ではPostgreSQLの以前のバージョンの累積最小値
は順序と列を与えるCの順で列Bの累積最小値が含まれています:私が欲しいものを説明するため
A B C
------------
1 5 5
2 4 4
3 6 4
4 5 4
5 3 3
6 1 1
おそらく最も簡単な方法は、それ以降のバージョンでは、次のクエリが何をするか、です
SELECT A , B, min (B) OVER(ORDER BY A) C FROM T;
しかし、バージョン8.2にはもちろんウィンドウ機能はありません。
私は配列でこれを行ういくつかのplpgsql関数を書いています。しかし、これを使用するには、array_agg集計関数を使用しなければなりません(そのバージョンにはarray_aggが組み込まれていません)。このアプローチはあまり効率的ではありません。小さいテーブルでうまくいきましたが、大きなテーブルで使う必要がありました。
この問題の代わりとなる、より効率的な解決策の提案には非常に感謝します。
ありがとうございました!