postgresql正在从包含数据的同一列更新包含NULL的列

postgresql正在从包含数据的同一列更新包含NULL的列,sql,postgresql,sql-update,Sql,Postgresql,Sql Update,表名:myTable,其中我需要使用同一列中的Null更新A的值 Group Value A 10 A NULL A NULL A 10 B 20 B 20 B 20 C 30 预期: Group Value A 10 A 10 A

表名:
myTable
,其中我需要使用同一列中的
Null
更新A的值

Group      Value
A            10
A            NULL
A            NULL
A            10
B            20
B            20
B            20
C            30  
预期:

Group      Value
A            10
A            10
A            10
A            10
B            20
B            20
B            20
C            30
我的问题是:

Update myTable
Set myTable.Age = b.Age
FROM myTable b
WHERE A.Age is Null
我得到的
关系不存在


我做错了什么?

我认为相关子查询可能是一种方法:

update myTable t
    set Age = (select t2.Age from mytable t2 where t2.name = t.name and t2.Age is not null)
    where t.Age is Null;
注意:对于给定的
名称
,如果
年龄
位于多行原始数据上,则会生成错误

如果性能是一个问题,您需要在
mytable(name,age)
上建立索引

是一个dbfiddle示例。

尝试此查询

UPDATE myTable SET Age = 
    (SELECT b.Age 
     FROM myTable b 
     WHERE b.Group = myTable.Group AND  b.Age IS NOT NULL
     LIMIT 1) 
WHERE Age IS NULL 

我建议在where子句中连接这些表,否则会产生笛卡尔积。我运行了10分钟,一小时后仍然运行,但没有更新anything@user2934524 . . . 代码是有效的。我举了一个例子。我唯一的问题是为什么要限制1@user2934524因为在您的表中,Group=A可能有几行。例如,表中包含这些行(A,10),(A,20)。因此,限制1只选择一行值为10的行。