Using window functions in an update statement
The error is from postgres not django. You can rewrite this as:
WITH v_table_name AS( SELECT row_number() over (partition by col2 order by col3) AS rn, primary_key FROM table_name) UPDATE table_name set table_name.col1 = v_table_name.rnFROM v_table_nameWHERE table_name.primary_key = v_table_name.primary_key;
Or alternatively:
UPDATE table_name set table_name.col1 = v_table_name.rnFROM ( SELECT row_number() over (partition by col2 order by col3) AS rn, primary_key FROM table_name) AS v_table_nameWHERE table_name.primary_key = v_table_name.primary_key;
This works. Just tested it on postgres-9.6. Here is the syntax for UPDATE (see the optional fromlist).
Hope this helps.