Postgresql:为什么 SET col = MAX(col2) 不起作用

我在 postgresql 中写了一段代码,它在 select 语句中工作,但在 update 语句中不起作用...... 我不明白为什么它不起作用以及如何做。这是我的代码:

UPDATE netflix_tt_serie
SET total_num_parts = MAX(num_parts) OVER(PARTITION BY num_title) 

使用这些列:

num_title: 11 222 33333 444
num_parts: 12 123 12345 123

所以我想要的结果(也是我在 select 语句中得到的结果)应该是:

total_num_parts: 22 333 55555 333

(我在 num_title 更改时添加了空格只是为了更清楚)非常感谢您的帮助!!

ou397657498 回答:Postgresql:为什么 SET col = MAX(col2) 不起作用

您可以通过多种方式执行此操作。一个典型的方法是:

UPDATE netflix_tt_serie nts
    SET total_num_parts = max_num_parts
    FROM (SELECT num_title,MAX(num_parts) as max_num_parts
          FROM netflix_tt_serie
          GROUP BY num_title
         ) x
    WHERE x.num_title = nts.num_title;

您的语法是不允许的,因为 SQL 通常不允许在 UPDATE 语句中使用聚合函数或窗口函数。

本文链接:https://www.f2er.com/71771.html

大家都在问