请问使用子表和父表关联,sum统计时如何不让父表字段重复统计

select
sum(parent.value) --统计时重复了
,sum(child.value)
。。。
from parent left join child house on child.parent_id = parent.id
where 。。。。

这里sum(parent.value)统计重复了

 加上distinct 
 select 
sum(distinct parent.value)

最好不要在这种情况下使用distinct,还是要从你的sql入手。

给出表示例和想要的结果,给你写一个。

之前貌似遇到过你这个问题,当时的解决思路是,先查父表,之后再查询子表。试过了,当时一条语句出不来数据,。

with t1 as (select parent.id as id, count(1) as num --count() 的内容视情况而定,应该是parent表里的关键字段
from parent left join child on child.parent_id = parent.id group by parent.id)
select sum(parent.value/num)
from parent
left join child on child.parent_id = parent.id
left join t1 on t1.id=parent.id;

思路是通过临时表先新增一个重复次数的字段 在进行sum计算之前先除去次数