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计算之前先除去次数