在一个SQL字符串中组合多个用户操作
我正在尝试编写一个SQL查询,该查询将向我显示所有已单击所有3个电子邮件职务ID的联系人:在一个SQL字符串中组合多个用户操作,sql,Sql,我正在尝试编写一个SQL查询,该查询将向我显示所有已单击所有3个电子邮件职务ID的联系人: Select CM.* from [US_B2B_TRADE_Contacts113020] CM join [_Click] C On CM.[Contact ID] = C.subscriberkey where C.JobID IN ('13498391') and where C.JobID IN ('15194352') and where C.JobID IN ('15194353') and
Select CM.* from [US_B2B_TRADE_Contacts113020] CM join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ('13498391') and where C.JobID IN ('15194352') and where C.JobID IN ('15194353') and (C.URL like '%hurtigruten%')
您显然误解了应该如何构造WHERE子句 而不是
Select CM.*
from [US_B2B_TRADE_Contacts113020] CM
join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ( '13498391' )
and
where C.JobID IN ( '15194352' )
and
where C.JobID IN ( '15194353' )
and
(C.URL like '%hurtigruten%')
应该是
Select CM.*
from [US_B2B_TRADE_Contacts113020] CM
join [_Click] C On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ( '13498391' )
and
C.JobID IN ( '15194352' )
and
C.JobID IN ( '15194353' )
and
(C.URL like '%hurtigruten%')
关键字“WHERE”只需在子句开头指定一次,即使您对语句应用了多个条件
我正在尝试编写一个SQL查询,它将向我显示所有点击了所有3个电子邮件工作ID的联系人
为了回答这个问题,您需要某种方式来组合来自不同行的信息。为什么?一行没有多个jobId
s
这样做的目的是筛选出至少有一个作业ID的所有联系人。然后检查它们是否具有所有三个:
select CM.[Contact ID]
from [US_B2B_TRADE_Contacts113020] CM join
[_Click] C
On CM.[Contact ID] = C.subscriberkey
where C.JobID IN ('13498391', '15194352', '15194353') and
C.URL like '%hurtigruten%'
group by CM.[Contact ID]
having count(distinct c.JobId) = 3;
注:
中的
比一组
或
条件方便得多
- 如果
确实是一个数字,则删除单引号。不要混合数据类型JobId
- 如果给定联系人的
不能有重复项,则使用JobId
而不是count(*)=3
count(distinct)