您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在更新语句中使用窗口函数

在更新语句中使用窗口函数

错误是来自postgres而不是django。您可以将其重写为:

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.rn
FROM v_table_name
WHERE table_name.primary_key = v_table_name.primary_key;

或者:

UPDATE table_name set table_name.col1 = v_table_name.rn
FROM  
(
    SELECT row_number() over (partition by col2 order by col3) AS rn, primary_key
    FROM table_name
) AS v_table_name
WHERE table_name.primary_key = v_table_name.primary_key;

这行得通。刚刚在postgres-9.6上进行了测试。这是UPDATE的语法(请参阅可选的 fromlist )。

希望这可以帮助。

其他 2022/1/1 18:44:13 有558人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶