我有一个通过 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() 方法传递窗口函数语法是不合适的,因为它返回一个 RawQuerySet,它不支持我需要的进一步的 ORM 功能,例如 .filter()。
谢谢。