【发布时间】:2018-01-05 23:00:45
【问题描述】:
我现在已经摸索了好几个小时,试图弄清楚如何使用 Redshift统计每月的通讯订阅者总数。
计算的基础是跟踪每个用户操作的事件表,特别是他订阅还是取消订阅时事通讯。简化后看起来像这样:
+----------------------+---------+---------------+
| timestamp | user_id | action |
+----------------------+---------+---------------+
| 2017-01-01T12:10:31Z | 1 | subscribed |
| 2017-01-01T13:11:51Z | 2 | subscribed |
| 2017-01-01T13:15:53Z | 3 | subscribed |
| ... | ... | ... |
| 2017-02-17T09:42:33Z | 4 | subscribed |
| ... | ... | ... |
| 2017-03-15T16:59:13Z | 1 | unsubscribed |
| 2017-03-17T02:19:56Z | 2 | unsubscribed |
| 2017-03-17T05:33:05Z | 2 | subscribed |
| ... | ... | ... |
我喜欢总结每个月订阅时事通讯的用户数量加上已经订阅但没有退订的用户数量。在上面的示例中,我们将在一月份有 3 个用户,在二月份添加另一个用户,总共有 4 个订阅者。然后在三月份,我们失去了一位用户,而另一位用户只是暂时退订。我们三月份的总订阅人数是 3。
我正在寻找的最终结果是这样的:
+------------+-------------+
| month | subscribers |
+------------+-------------+
| 2017-01-01 | 3 |
| 2017-02-01 | 4 |
| 2017-03-01 | 3 |
| ... | ... |
任何想法是否以及如何使用 SQL 查询来解决(最好在 Redshift 或 Postgres 中工作)?
【问题讨论】:
-
重要的是要知道这是针对 redshift 还是 postgres,因为它们在高级级别完全不同!是哪一个?请删除一个标签?
标签: postgresql amazon-redshift