sql - 在 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);
因为每次我使用这段代码时,输出都不正确。它计数,但只有当我连接第二个服务分线和消费者时,它不会计入我连接到变压器的第一个服务分线和消费者。:(
解决方案
推荐阅读
- emscripten - 在模块实例之间共享 WebAssembly.Memory
- php - 制作可以从 HTML 表单中获取输入的可拖动元素(圆形、矩形等形状)
- php - Laravel 不显示上传的图片(共享主机)
- sql-server - 如何获取当前正在运行的完整查询
- sql-server - 如何使用 Web 服务更新数据
- nativescript - 如何将下一行的文本居中移动?
- python - Flask-Admin 和蓝图工厂模式给出 werkzeug.routing.BuildError: Could not build url for endpoint 'admin.static'
- python-3.x - 如何有效地编写 pandas melt 和 join 以便在容器内运行而不会导致 SystemOOM 异常?
- sql - 努力获得结果(视图、变量、存储过程)
- ruby-on-rails - 如何显示特定用户的产品或记录?