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
我有一个包含 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