【发布时间】:2020-09-04 18:24:05
【问题描述】:
我有一个记录网站活动的表格,其中包含以下列和数据
ID Date Source Revenue
1 2013-10-01 A 0
2 2013-10-01 A 0
3 2013-10-01 B 10
1 2013-10-02 A 40
4 2013-10-03 B 0
3 2013-10-03 B 0
4 2013-10-04 A 10
我正在尝试创建一个表格,该表格包含每笔交易(收入 > 0),并按来源计算过去 30 天内各个列中的所有访问次数。它应该看起来像这样。
ID Date Source Revenue Count_A Count_B
3 2013-10-01 B 10 0 1
1 2013-10-02 A 40 2 0
4 2013-10-04 A 10 1 1
我已尝试对这些列中的每一列使用子查询,但计数太差了,我不知道为什么。
Select ID,
Date,
Source,
Revenue,
(SELECT Count(*)
FROM table t2
WHERE t2.Date between t.Date-30 and t.Date and Source = 'A') AS Count_A
(SELECT Count(*)
FROM table t3
WHERE t3.Date between t.Date-30 and t.Date and Source = 'B') AS Count_B
FROM table t
Where Revenue > 0
Order By WMEID
我正在使用 Microsoft SQL Server。
【问题讨论】:
-
如何
Source - A约会2013-10-02Count_A=2? -
因为客户“1”在通过来源 A 进行购买前 30 天内访问了该网站两次。一次在“2013-10-01”他们没有购买,一次在“ 2013-10-02”他们在哪里。目标是计算客户在购买前 30 天访问网站的次数以及他们通过哪些渠道访问网站。
标签: sql sql-server tsql count e-commerce