generate_series() 方法在 Redshift 中失败

2024-05-26

当我运行 SQL 查询时:

 select generate_series(0,g)
 from ( select date(date1) - date(date2) as g from mytable ;

它返回一个错误:

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

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

select  generate_series(0, g) from (select 5 as g)

它返回以下响应:

 generate_series
-----------------
 0
 1
 2
 3
 4
 5
(6 rows)

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


The generate_series()Redshift 不完全支持该功能。请参阅不支持的 PostgreSQL 函数 http://awsdocs.s3.amazonaws.com/redshift/latest/redshift-dg.pdf开发者指南部分:

在具体示例中,第二个查询完全在领导节点上执行,因为它不需要扫描任何实际的表数据,而第一个查询则尝试选择数据,因此将在计算节点上执行。

UPDATE:

generate_series 现在正在与 Redshift 合作。

SELECT CURRENT_DATE::TIMESTAMP  - (i * interval '1 day') as date_datetime 
FROM generate_series(1,31) i 
ORDER BY 1

这将生成最近 30 天的日期

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

generate_series() 方法在 Redshift 中失败 的相关文章

随机推荐