我是SQL的新手,到目前为止我已经很好地解决了问题,但我在这个查询中遗漏了一些内容:
问题是如何使用另一列从两列返回不同的计数,如果值大于0则返回标准。
我尝试过IF和AND运算符(我当前的查询返回0而不是错误,只有使用一个.shp标准才有效)
select count (distinct ti.TO_ADDRESS)
from ti
where ti.input_id = 'xxx_029_01z_c_zzzzbab_ecrm.shp'
and ti.input_id = 'xxx_030_01z_c_zzzzbab_ecrm.shp'
and ti.OPENED>0;
非常感谢!!
答案 0 :(得分:2)
我认为您需要两个级别的聚合:
select count(*)
from (select ti.TO_ADDRESS
from ti
where ti.input_id in ('xxx_029_01z_c_zzzzbab_ecrm.shp', 'xxx_030_01z_c_zzzzbab_ecrm.shp') and
ti.OPENED > 0
group by ti.TO_ADDRESS
having count(distinct ti.input_id) = 2 -- has both of them
) ti;