我需要计算每个月的用户数量。我写了查询。
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消息一个)。"是否有可能以某种方式重写此查询或指定哪里出错?
答案 0 :(得分:3)
Amazon Redshift不完全支持generate_series()
命令。
它可以用于仅在Leader节点上运行的查询,但不能在涉及表的查询中使用,因为它们涉及集群节点。唯一的解决方法是创建一个包含大量值的大表,并连接到它以获取一系列数字。 (预先做了一些工作,但它工作正常。)
您会在StackOverflow上找到许多与generate_series()
相关的类似问题。