相关疑难解决方法(0)

在redshift中使用sql函数generate_series()

我想在redshift中使用generate系列函数,但还没有成功.

redshift文档说它不受支持.以下代码确实有效:

select *
from generate_series(1,10,1)
Run Code Online (Sandbox Code Playgroud)

输出:

1
2
3
...
10
Run Code Online (Sandbox Code Playgroud)

我想对约会做同样的事情.我尝试了很多变种,包括:

select *
from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)
Run Code Online (Sandbox Code Playgroud)

踢出去:

 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]
Run Code Online (Sandbox Code Playgroud)

还尝试过:

select *
from generate_series('2008-10-01 00:00:00'::timestamp,
'2008-10-10 00:00:00'::timestamp,'1 day')
Run Code Online (Sandbox Code Playgroud)

并试过:

select *
from generate_series(cast('2008-10-01 00:00:00' as datetime),
cast('2008-10-10 00:00:00' as datetime),'1 day')
Run Code Online (Sandbox Code Playgroud)

两个都踢了出来:

ERROR: function generate_series(timestamp without time zone, timestamp without time zone, …
Run Code Online (Sandbox Code Playgroud)

sql generate-series amazon-redshift

18
推荐指数
3
解决办法
2万
查看次数

在Redshift中generate_series()方法失败

当我运行SQL查询时:

 select generate_series(0,g)
 from ( select date(date1) - date(date2) as g from mytable ;
Run Code Online (Sandbox Code Playgroud)

它返回一个错误:

 INFO:  Function "generate_series(integer,integer)" not supported.
 ERROR:  Specified types or functions (one per INFO message) not supported 
 on Redshift tables.
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个查询时:

select  generate_series(0, g) from (select 5 as g)
Run Code Online (Sandbox Code Playgroud)

它返回以下响应:

 generate_series
-----------------
 0
 1
 2
 3
 4
 5
(6 rows)
Run Code Online (Sandbox Code Playgroud)

为什么第二个查询有效,而第一个查询失败?

generate-series amazon-redshift

6
推荐指数
2
解决办法
6864
查看次数

标签 统计

amazon-redshift ×2

generate-series ×2

sql ×1