PostgreSQL テーブルのコマンド行 (サブセレクトから選択) をグループに分割する必要がありUPDATE
ます。これらのグループは、その列の 1 つの整数値で識別されます。これらのグループは同じサイズである必要があります。ソース テーブルには数十億のレコードが含まれています。
たとえば、選択した 213 行をグループに分割する必要があります。各グループには 50 レコードが含まれている必要があります。結果は次のようになります。
- 1 - 50。行 => 1
- 51 - 100. 行 => 2
- 101 - 150. 行 => 3
- 151 - 200. 行 => 4
- 200 - 213. 行 => 5
いくつかのループを使用して (または PostgreSQL ウィンドウ関数を使用して) 問題はありませんが、非常に効率的かつ迅速に実行する必要があります。これらの ID にはギャップがあるはずなので、ID にシーケンスを使用できません。
ランダム整数ジェネレーターを使用して、行のデフォルト値として設定するという考えがあります。しかし、グループサイズを調整する必要がある場合、これは使用できません。