我有一个7k记录的PostgreSQL表。每条记录有3个唯一ID和3个字段。托儿所,医院,医院。有所有整数字段。我想添加一个新列并计算每行的受体(学校,儿童保育,医院)的总量。我认为这应该是非常直接的添加一个列并使用选择进行插入但我没有得到我想要的结果
alter table site add total integer;
insert into site(total) select sum(schools+childcares+hospitals) as s from site;
我还在插入选择语句中尝试了一个id组
答案 0 :(得分:1)
您正在寻找Update
而不是Insert
Update site
set total = COALESCE(schools,0)+COALESCE(childcares,0)+COALESCE(hospitals,0)
添加了COALESCE
来处理NULL
值。
例如:
1 + 2 + NULL = NULL
所以要将NULL
替换为0
,我使用了COALESCE
。
现在它将是1 + 2 + 0(NULL) = 3