【发布时间】:2016-12-04 16:00:04
【问题描述】:
我需要为报表创建一个空的时间表系列,以便我可以将多个表中的连接活动留给它。一天中的每个小时都不一定有数据,但我希望它显示空或零以表示不活动,而不是省略一天中的那个小时。
在更高版本的 Postgres(8.0.2 之后)中,这在几个方面很容易:
SELECT unnest(array[0,1,2,3,4...]) as numbers
或
CROSS JOIN (select generate_series as hours
from generate_series(now()::timestamp,
now()::timestamp + interval '1 day',
'1 hour'::interval
)) date_series
Redshift 可以运行其中一些命令,但当您尝试将其与任何表一起运行时会引发错误。
我需要什么:
一种可靠的方式来生成一系列数字(例如 0-23)作为子查询,它将在 redshift 上运行(使用 postgres 8.0.2)。
【问题讨论】:
-
因为 Redshift 没有版本化,因此任何人都无法使用旧版本我不明白为什么这个问题应该保持开放。我投票关闭。 Redshift 现在支持这一点。
-
Evan Carroll,Redshift 不支持使用生成系列交叉连接到子查询中。它显示错误“Redshift 表不支持指定的类型或函数(每个 INFO 消息一个)。;”
-
@EvanCarroll 是否在某处记录了对此的支持?我仍然看到在 redshift 文档中将 generate_series 列为“不支持”。我们迁移到 bigquery,所以我无法自己测试。
标签: amazon-redshift generate-series postgresql-8.0