Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Amazon红移:如何创建包含时间序列的表_Sql_Amazon Redshift - Fatal编程技术网

Sql Amazon红移:如何创建包含时间序列的表

Sql Amazon红移:如何创建包含时间序列的表,sql,amazon-redshift,Sql,Amazon Redshift,我想用红移创建一个表,它将有一列date,其值将从今天到未来3年 date --------------------- 2017-05-03 00:00:00 2017-05-04 00:00:00 2017-05-05 00:00:00 2017-05-06 00:00:00 我正试图使用创建表作为select\u查询语句来实现这一点 create table tmp_date_series as select now()::date::times

我想用红移创建一个表,它将有一列
date
,其值将从今天到未来3年

        date         
---------------------
 2017-05-03 00:00:00
 2017-05-04 00:00:00
 2017-05-05 00:00:00
 2017-05-06 00:00:00
我正试图使用
创建表作为select\u查询
语句来实现这一点

 create table tmp_date_series as select now()::date::timestamp + generate_series(0, 1000);
但是,上述查询失败,并出现错误-

INFO:不支持函数“now()”。
信息:不支持函数“生成_系列(整数,整数)”。
错误:红移表不支持指定的类型或函数(每个信息消息一个)。
但是如果我单独运行select查询-
select now()::date::timestamp+generate_series(0150)as date,它运行时没有任何错误-

        date         
---------------------
 2017-05-03 00:00:00
 2017-05-04 00:00:00
 2017-05-05 00:00:00

知道如何创建这样的表吗?

不幸的是,红移中不支持
generate\u series

我的团队使用这样的CTE从特定日期开始获取一系列连续日期:

with dates as (
    select
        (trunc(getdate()) + row_number() over (order by 1))::date as date
    from
        large_enough_table
    limit
        150
)
然后您可以将其用作:

select date
from dates
order by date
limit 5
并获得:

2018-12-13
2018-12-14
...

遗憾的是,红移中不支持生成\u系列

我的团队使用这样的CTE从特定日期开始获取一系列连续日期:

with dates as (
    select
        (trunc(getdate()) + row_number() over (order by 1))::date as date
    from
        large_enough_table
    limit
        150
)
然后您可以将其用作:

select date
from dates
order by date
limit 5
并获得:

2018-12-13
2018-12-14
...

投票重新打开时,
generate_series
在AWS红移上不可用。是否应该
generate_series()
进入
from
子句
createtablex作为select(current_date+i)::timestamp from generate_series(01000)作为x(i)
作为旁白,您的问题中实际有效的查询只起作用,因为它只在leader节点上运行,该节点使用PostgreSQL 8.4的fork。只要您点击工作节点(例如,如果您使用任何“real”表),查询就会在那些没有
generate_series
的节点上运行。您必须使用带有数字或cte的表,而不是
generate_series
。投票重新打开时,
generate_series
在AWS红移上不可用。是否应该
generate_series()
进入
from
子句
createtablex作为select(current_date+i)::timestamp from generate_series(01000)作为x(i)
作为旁白,您的问题中实际有效的查询只起作用,因为它只在leader节点上运行,该节点使用PostgreSQL 8.4的fork。只要您点击工作节点(例如,如果您使用任何“real”表),查询就会在那些没有
generate_series
的节点上运行。您必须使用带有数字或cte的表,而不是
generate_series