SQL返回0订阅者,他们打开了简报1和2

时间:2014-06-17 10:26:33

标签: sql

id  subscriberid newsletterid Opened
1       1         1              yes
2       1         2              yes
3       2         1              yes

我的SQL查询应该是这样的:

select subscriberid
from email_marketing 
where Opened=1 and (newsletterid=1 and newsletterid=2);

但它返回空记录。我正在尝试显示所有打开newsletterid 1& 2.

预期结果是subscriberid 1,他打开了两个简报(id 1和2)。 需要你的帮助。

1 个答案:

答案 0 :(得分:0)

对于单个记录,newsletterid不能同时为2个不同的值。所以你需要建立一个小组并查看完整的小组。

select subscriberid
from email_marketing 
where Opened = 1 and newsletterid in (1,2)
group by subscriberid
having count(distinct newsletterid) = 2

您需要按subscriberid进行分组,然后您可以计算之前已过滤的不同newsletterid,这些应该是两个。