我似乎无法得到这个查询来给我正确的结果。
select
datepart(day, i.timestamp) as [day],
i.campaignID, i.creativeID
, count(distinct i.sessionID) as [Impressions]
, count(case when e.eventID in (1,2,3) then 1 else 0 end) as Clicks
from impressions i
left join Events e
on i.sessionID = e.sessionID
group by
datepart(day, i.timestamp)
, i.campaignID, i.creative
order by [day]
我还尝试在 then 子句中将 1 替换为 e.eventid 。结果中的点击次数太多了。事件每个 sessionid 有多个记录,因为许多类型的事件可以在同一个会话中发生(翻转、转出等)。我要计算的事件的 eventid 将是 1、2 或 3,因为它们将是 3您可以点击的可能链接。我正在寻找的是通过获取展示次数和相关点击次数来计算点击率,如果没有点击,我希望它反映为 0 而不是从结果中丢失,这就是我得到的。
任何帮助表示赞赏,提前感谢您的宝贵时间!