我试图通过时间序列获取Redshift中不同对象的累计计数。直接的方法是使用COUNT(DISTINCT myfield)OVER(ORDER BY timefield DESC ROWS UNBOUNDED PRECEDING),但Redshift给出了“不支持窗口定义”的错误。尝试使用Redshift计算累积的不同实体SQL
例如,下面的代码试图找出从第一周到现在每周的累积不同用户。但是,我得到“窗口功能不支持”的错误。
SELECT user_time.weeks_ago,
COUNT(distinct user_time.user_id) OVER
(ORDER BY weeks_ago desc ROWS UNBOUNDED PRECEDING) as count
FROM (SELECT FLOOR(EXTRACT(DAY FROM sysdate - ev.time)/7) AS weeks_ago,
ev.user_id as user_id
FROM events as ev
WHERE ev.action='some_user_action') as user_time
目标是建立执行操作的唯一用户的累计时间序列。任何想法如何做到这一点?
我看到了同样的链接例如不工作。但是这有所帮助。谢谢。 – systemjack
当你不想用'select *'返回每一行时,你会做什么?我有一种情况,我想在一个月的时间间隔内统计不同的客户,但是当我通过分区中的'customer_id'命令返回集给出每个等级值时,即使我只想要该月的最大值。 – Merlin