【发布时间】:2020-12-27 02:45:43
【问题描述】:
我在 SQL Workbench 中工作。
我想跟踪过去 30 天内每次有唯一身份客户点击新功能的时间,每周显示一次。数据输出示例如下:
第 51 周:反映到第 51 周(12 月 20 日)结束 - 30 天的使用情况。又名 11 月 20 日至 12 月 20 日 第 52 周:反映到第 52 周(12 月 31 日)结束 - 30 天的使用情况。也就是 12 月 1 日 - 12 月 31 日。
假设在 11 月 20 日至 12 月 20 日期间发生了 22MM 的唯一客户点击。第 51 周数据 = 22MM。 假设在 12 月 1 日至 12 月 31 日期间发生了 25MM 的唯一客户点击。第 52 周数据 = 25MM。客户唯一性仅与该特定周相关。 Aka,如果客户在第 51 周点击两次,他们只会被计算一次。如果他们在第 51 周和第 52 周点击一次,则每周计算一次。
这是我目前所拥有的:
select
min_e_date
,sum(count(*)) over (order by min_e_date rows between unbounded preceding and current row) as running_distinct_customers
from (select customer_id, min(DATE_TRUNC('week', event_date)) as min_e_date
from final
group by 1
) c
group by
min_e_date
我认为滚动计数不是正确的方法。当我添加其他参数(国家、订阅)时,滚动计数不会区分它们 - 数字只是被添加到前一行。
欢迎提出任何建议!
编辑下面的其他数据。数据收集于 11/23 开始。该日期之前没有数据。
【问题讨论】:
-
样本数据和期望的结果将真正阐明您想要做什么。
-
抱歉@liebhabe,您的要求不够明确。需要样本数据和期望的输出作为例子
-
@GordonLinoff 谢谢 - 附加数据附加到原始帖子。
-
@Raihan 谢谢 - 附加数据附加到原始帖子。
标签: sql amazon-redshift window-functions