计算去年新访问者的重复访问次数

时间:2017-12-07 15:47:23

标签: sql sql-server ssms

我需要计算2015年新成员加入2015年成员的重复访问次数。

SELECT
    playsite_id AS Loc, 
    DATENAME(MONT, date_id) AS Mon, 
    SUM(CASE WHEN visit_type = 'WALK-IN REPEAT' THEN 1 ELSE 0 END) RepeatVisits,
    SUM(CASE WHEN visit_type = 'WALK-IN NEW' THEN 1 ELSE 0 END) AS NewVists
FROM 
    [dbo].[Guest_Visit_Fact]
WHERE
    visit_type IN ('WALK-IN REPEAT', 'WALK-IN NEW') 
    AND date_id >= '20150101' AND date_id < '20160101'
GROUP BY
    playsite_id, DATENAME(MONTH, date_id)
ORDER BY
    playsite_id

我很接近。此代码中的重复访问将返回当年的所有重复访问,但我只希望重新访问当年加入的新成员。我怎么能这样做?

我以为我可以使用WHERE NOT EXISTS。因此,如果ID在2015年1月1日之前存在,请不要在重复访问列中对其进行计数。我只是不确定如何编码。谢谢!

编辑:

here is what it should be

理论上,理想情况下,所需输出的重复访问次数应低于新访问次数(因为我们需要重复访问次数来自当年的新访问次数)。

0 个答案:

没有答案