这是我想在 Greenplum 数据库(如 postgresql 8.2.15)中完成的非常基本的查询。
表 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))
它的 throw 错误
ERROR: function generate_series(double precision, double precision) does not exist
第 1 行:select * from generate_series ((select EXTRACT (YEAR FROM MI...
^
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
最佳答案
您可以显式地将参数转换为整数:
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
关于postgresql - 最小和最大日期的 generate_series,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20009731/