在需要两个类似的表中没有得到重复聚集的结果。
该表有类似的结构。 (日期,billed_number,CARRIER_ID,持续时间...)表是2019年1月29日和2019年1月30日
我试过UNION相同的查询,但我得到重复的条目。
select billed_number, sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed
from alex4..[2019-01-29]
where billed_number = '702640'
and carrier_id = 171
group by billed_number
union all
select billed_number, sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed
from alex4..[2019-01-30]
where billed_number = '702640'
and carrier_id = 171
group by billed_number
在这个例子中,我只用表([2019年1月29日]和[2019年1月30日]),我还需要能够两个以上的表结合起来。
结果:billed_number,完成702640 3735 702640 3539
预期结果:billed_number,完成702640 7274
使用union不UNION ALL确实有重复结合所有结果
感谢您的答复。其实我都尝试UNION和UNION ALL,得到了相同的结果。
我昨晚直到我想通了。一个子查询的伎俩......
SELECT distinct billed_number , sum(completed)as comp , FROM (
SELECT [billed_number],
sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed,
sum(CASE WHEN [account_billed_duration] = 0 THEN 1 END) AS failed
FROM alex4..[2019-01-29]
where billed_number = '702640'
and carrier_id = 171
group by billed_number --,account_billed_duration
UNION
SELECT [billed_number],
sum(CASE WHEN [account_billed_duration] > 0 THEN 1 END) AS completed,
sum(CASE WHEN [account_billed_duration] = 0 THEN 1 END) AS failed
FROM alex4..[2019-01-30]
where billed_number = '702640'
and carrier_id = 171
group by billed_number --, account_billed_duration
) Q
group by billed_number
再次感谢您的答复:-)