我有一个这样的表:
<表类=“s-表”> <标题>跟踪所有用户的电子邮件、IP、日期/时间和事件(注册和购买)。
现在,我正在尝试对 a) 注册和 b) 转化进行每日统计(注册后 7 天内发生的购买,分配给该电子邮件/IP 的初始注册日期,而不是购买日期)。 p>
我可以轻松计算出 a) 注册...但试图弄清楚如何查询 7 天内的转化,然后将每个注册的转化分配给注册日期(而不是转化日期,这很容易) ,事实证明这是一个相当大的挑战。
这是我迄今为止的查询:
选择日期(时间戳)作为日期, SUM(CASE WHEN event = '注册' THEN 1 ELSE 0 END) AS 注册, SUM(CASE WHEN event = '购买' THEN 1 ELSE 0 END) AS 转化 来自点击跟踪 哪里日期(时间戳)<='2021-07-31' 和日期(时间戳)>='2021-07-01' 按日期分组 按日期排序
这给了我以下结果:
<表类=“s-表”> <标题>我理想中需要的是这样的(3 个购买事件与 15 日的 3 个注册事件相关联,因此为什么 3 个转化被分配给 15 日,而没有分配给 16 日):
<表类=“s-表”> <标题>有道理吗?
请记住,这个 click_tracking 表的大小有一百万或两条记录,而且我已经多次尝试在其自身上使用 JOINS 使其崩溃,因此并非任何查询都可以执行...
知道如何有效地解决这个问题并更改我的查询来完成这个任务吗?
您需要窗口函数来执行此类查询: