【发布时间】:2011-05-20 12:08:54
【问题描述】:
我有一个通过 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()。
谢谢。
【问题讨论】:
标签: sql django postgresql window-functions