我想在红移中生成一系列日期。我可以在PostgreSQL中使用generate_series()函数轻松地做到这一点。这个函数在Redshift中工作,但只在主节点上工作,所以当你必须在临时表上使用它来应用一些连接时,它会失败。
你知道没有使用generate_series()函数的任何其他方法吗?
SELECT generate_series(66,116) as sprint,
to_char(DATE '2022-03-01' + (interval '2 week' * generate_series(0,50)), 'YYYY-MM-DD') AS start_date,
to_char(DATE '2022-03-15' + (interval '2 week' * generate_series(0,50)), 'YYYY-MM-DD') AS end_date
输入图片描述
您可以在Redshift中使用递归CTE轻松地做到这一点。我刚才在这里回答了一个类似的问题……
如何在红移中获得过去x天之前所有行的最小值
如果这还不能解决你的问题,或者你需要帮助把这个答案应用到你的问题上,请告诉我。
我能解决它。
select n+65 as sprint,
DATEADD('week', (n + (n-1)), DATE('2022-02-22')) AS start_date,
DATEADD('week', (n + (n-1)), DATE('2022-03-08')) AS end_date
FROM (SELECT ROW_NUMBER() OVER () AS n FROM stl_scan LIMIT 100) n
ORDER BY start_date asc