首页 > 解决方案 > 在 postgresql 中计数

问题描述

我在QGIS中有名为transformer、Service drop Wire和consumer的层,它连接到我的数据库Pgadmin 4,我正在使用Postgresql。这些表有一个类似的列,称为 dtcode (Ex. 4344-D2),表转换器有一个称为 connected 的列。我想要做的是,每次我想用相同的 dtcode 将服务分接线和消费者连接到变压器时,我希望变压器中连接的列计数,(例如,连接列中的最后一个数据是 14 ,当我将另一条服务分接线和消费者连接到变压器时,连接的列将变为 15)。

我在服务 dropwire 下创建了一个函数和一个触发器,我的查询是这样的,

create function con()
returns trigger as
$BODY$
begin

update transformer t
set connected = (select count (dtcode) from consumer c where c.dtcode = t.dtcode);

return new;
end;
$BODY$
Language plpgsql;

create trigger con
after insert on sdw
for each row 
execute procedure con();

我想知道代码有什么问题,特别是在这部分,

update transformer t
set connected = (select count (dtcode) from consumer c where c.dtcode = t.dtcode);

因为每次我使用这段代码时,输​​出都不正确。它计数,但只有当我连接第二个服务分线和消费者时,它不会计入我连接到变压器的第一个服务分线和消费者。:(

标签: sqlpostgresqlqgis

解决方案


推荐阅读