qqq Asked:2022-07-16 04:46:55 +0000 UTC2022-07-16 04:46:55 +0000 UTC 2022-07-16 04:46:55 +0000 UTC 如何使用来自多个表的分组和计数结果创建查询(postgresql sql) 772 有两张桌子 你需要计算一个特定公园的总损失量,比如在合约表中,一个id为8328的公园出现了两次,合约id为743, 513。查看事故表,我们看到损失是:8124 + 30159 = 38283 问题是我不知道如何从多个表中创建这样的查询。这些表以 1:1 的关系相关。但是当我尝试通过 id_contract 在表中按 id_park 对合同进行分组时,以便稍后我可以在事故表中获取损坏数据时,我不断收到一条错误消息。 postgresql запрос 1 个回答 Voted Best Answer Namerek 2022-07-16T05:45:16Z2022-07-16T05:45:16Z create table contracts ( id int primary key , client_id int, unit_id int, park_id int ); create table crashes ( event_id int primary key , contact_id int references contracts on update cascade on DELETE restrict , event_date date default current_date, damage_amount int ); insert into contracts (id, client_id, unit_id, park_id) values (969, 13, 3, 5532), (743, 14, 4, 8328), (513, 15, 5, 8328), (938, 18, 8, 5421); insert into crashes (event_id, contact_id, event_date, damage_amount) values (11, 969, '2021-03-12', 31909), (21, 938, '2021-02-08', 2152), (20, 743, '2021-07-03', 8124), (14, 513, '2021-08-08', 30159) ; 好吧,这就是您希望收到问题的方式。 回答 select park_id, sum(c2.damage_amount) from contracts c join crashes c2 on c.id = c2.contact_id group by park_id park_id 和 5421 2152 8328 38283 5532 31909
回答