SQL 将列加在一起

SQL adding columns together

我有一个包含 7k 条记录的 PostgreSQL table。每条记录都有 3 个唯一 ID 和 3 个字段。托儿所、学校、医院。有所有整数字段。我想添加一个新列并计算每一行的接受者(学校、托儿所、医院)的总数。我认为添加一列并使用 select 进行插入应该是非常简单的,但我没有得到我想要的结果

alter table site add total integer;

insert into site(total) select sum(schools+childcares+hospitals) as s from site;

我也试过在插入 select 语句中按 id 分组

您正在寻找 Update 而不是 Insert

Update site 
 set total = COALESCE(schools,0)+COALESCE(childcares,0)+COALESCE(hospitals,0)

添加了 COALESCE 来处理 NULL 值。

例如:

1 + 2 + NULL = NULL 所以要用 0 替换 NULL 我使用了 COALESCE

现在是1 + 2 + 0(NULL) = 3