gpt4 book ai didi

sql - 在redshift中使用sql函数generate_series()

转载 作者:行者123 更新时间:2023-12-02 04:31:03 25 4
gpt4 key购买 nike

我想使用redshift中的生成系列功能,但没有成功。

redshift 文档表示不支持。以下代码确实有效:

select *
from generate_series(1,10,1)

输出:

1
2
3
...
10

我想对日期做同样的事情。我尝试了多种变体,包括:

select *
from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)

踢出:

 ERROR: function generate_series(date, date, integer) does not exist
Hint: No function matches the given name and argument types.
You may need to add explicit type casts. [SQL State=42883]

还尝试过:

select *
from generate_series('2008-10-01 00:00:00'::timestamp,
'2008-10-10 00:00:00'::timestamp,'1 day')

并尝试过:

select *
from generate_series(cast('2008-10-01 00:00:00' as datetime),
cast('2008-10-10 00:00:00' as datetime),'1 day')

两者都踢出:

ERROR: function generate_series(timestamp without time zone, timestamp without time zone, "unknown") does not exist
Hint: No function matches the given name and argument types.
You may need to add explicit type casts. [SQL State=42883]

如果没有,我将使用另一篇文章中的代码:

SELECT to_char(DATE '2008-01-01'
+ (interval '1 month' * generate_series(0,57)), 'YYYY-MM-DD') AS ym

PostgreSQL generate_series() with SQL function as arguments

最佳答案

亚马逊 Redshift seems to be based on PostgreSQL 8.0.2 。 generate_series() 的时间戳参数是在 8.4 中添加的。

像这样的东西可以回避这个问题,可能可以在 Redshift 中工作。

SELECT current_date + (n || ' days')::interval
from generate_series (1, 30) n

它可以在 PostgreSQL 8.3 中运行,这是我可以测试的最早版本。它记录在 8.0.26 中。

稍后。 。 .

看来generate_series() is unsupported在 Redshift 中。但鉴于您已经验证 select * fromgenerate_series(1,10,1) 确实有效,上面的语法至少给了您一个战斗的机会。 (尽管间隔数据类型也被记录为在 Redshift 上不受支持。)

再晚一点。 。 .

您还可以创建一个整数表。

create table integers (
n integer primary key
);

随心所欲地填充它。您也许可以在本地使用generate_series()、转储表并将其加载到Redshift 上。 (我不知道;我不使用 Redshift。)

无论如何,您可以使用该表进行简单的日期算术运算,而无需直接引用generate_series()或间隔数据类型。

select (current_date + n)
from integers
where n < 31;

至少在 8.3 中有效。

关于sql - 在redshift中使用sql函数generate_series(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com