result: result_id, person_id, result
area: person_id, district_id
district: province_id, district_id
我想要SUM(result.result) GROUP BY province_id
但由于area.person_id
有多个person_id
,所以当我SUM(result.result)
时,我总是得到双倍结果或三倍值来代替area.person_id
中的数量。
你能帮忙吗?
答案 0 :(得分:0)
使用带有DISTINCT
的子查询删除重复项。
SELECT province_id, SUM(result)
FROM (
SELECT DISTINCT d.province_id, r.person_id
FROM result AS r
JOIN area AS a ON r.person_id = a.person_id
JOIN district AS d ON a.district_id = d.district_id) AS p
JOIN result AS r ON p.person_id = r.person_id
GROUP BY province_id