查询Redshift时出错

时间:2017-02-07 23:36:01

标签: sql amazon-redshift

我需要计算每个月的用户数量。我写了查询。

SELECT COUNT(distinct user_id) 
from (
select TO_CHAR((current_date - interval '1 month' * a),'YYYY-MM') as MyMonth
from generate_series(1,60,1) AS s(a)
) months 
 LEFT OUTER JOIN database.users
ON months.MyMonth=to_char(created_at, 'YYYY-MM')
GROUP BY months.MyMonth

但是当我尝试执行它时,会出现错误:" Redshift表不支持指定的类型或函数(每个INFO消息一个)。"是否有可能以某种方式重写此查询或指定哪里出错?

1 个答案:

答案 0 :(得分:3)

Amazon Redshift不完全支持generate_series()命令。

它可以用于仅在Leader节点上运行的查询,但不能在涉及表的查询中使用,因为它们涉及集群节点。唯一的解决方法是创建一个包含大量值的大表,并连接到它以获取一系列数字。 (预先做了一些工作,但它工作正常。)

您会在StackOverflow上找到许多与generate_series()相关的类似问题。