19
私はDjangoを介してアクセスする大きなPostgreSQLテーブルを持っています。 DjangoのORMはウィンドウ関数をサポートしていないので、ウィンドウ関数の結果を通常のカラムとしてテーブルに書き込む必要があります。私はこのような何かやりたい:更新ステートメントのウィンドウ関数を使用
UPDATE table_name
SET col1 = ROW_NUMBER() OVER (PARTITION BY col2 ORDER BY col3);
をしかし、私はERROR: cannot use window function in UPDATE
誰もが別のアプローチを提案することができますを取得しますか? Djangoの.raw()メソッドでウィンドウ関数の構文を渡すことは適切ではありません。必要な.filter()などのORM機能をサポートしていないRawQuerySetを返します。
ありがとうございました。
自己結合が必要ないと思いますか?私は間違っているかもしれませんが、私はこれをSQL Serverで動作するものに基づいています! –
@Martin:2つのテーブルを選択しています.1つはUPDATE 'tablename'で、もう1つは' FROM tablename'節にあります。あなたが明示的に参加しなければ、それはデカルト積を生み出すでしょう。 – Max
ああ、いいえ、私はありません! –