2013-11-15 183 views
1

这是我想要在Greenplum数据库中完成的基本查询(如postgresql 8.2.15)。generate_series为最小和最大日期

表t中的字段create_date是没有时区的时间戳。 任何人都可以指向我正确的查询来完成此?谢谢。

select * from generate_series ((select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1),(select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1)) 

它投掷的错误

ERROR: function generate_series(double precision, double precision) does not exist 

LINE 1:SELECT * FROM generate_series((选择提取物(一年MI ... ^ 提示:无功能的指定名称和参数类型相匹配。您可能需要增加明确的类型转换

回答

1

您可以显式转换参数整数。

select * 
from generate_series (
    (select EXTRACT (YEAR FROM MIN(t1.create_date)) from t1)::int, 
    (select EXTRACT (YEAR FROM MAX(t1.create_date)) from t1)::int 
) 

sql fiddle demo