【发布时间】:2016-11-10 10:18:39
【问题描述】:
我有一个乍一看似乎微不足道的复杂问题:
- 对于给定的 90 天窗口,我有多少不同的活跃用户?
我将用来查询这个的表是登录表(托管在 Redshift 中),它有一个时间戳,其中登录时间和用户令牌作为用户标识符。
每当我想在一天内回答这个问题时,查询都很简单直接:
select count (distinct usertoken)
from logins
where datediff('d',logintime,getdate()) <= 90
问题变得复杂,因为我想在一个表格中包含每个给定日期的数字。
07/07 100k
07/06 98k
07/05 99k
07/04 101k
(...)
窗口函数对我没有帮助,因为我需要计算不同的,而这在窗口函数中是不可能的。
据我所知,没有办法在 SQL 查询中进行迭代。
我该怎么办?
【问题讨论】:
-
请详细说明
every given date。您是否通过时间范围的下限和上限?还是一组随机日期?同一天可以有单个用户的重复条目吗?你的桌子有多大?行数?每行/表定义的字节数。
标签: sql postgresql amazon-redshift