我正在使用Postgresql ver 8.4并编写了以下自定义分组功能:
CREATE OR REPLACE FUNCTION custom_group(integer) RETURNS TABLE ( grp INTEGER,entry_date DATE,col1 REAL,col2 REAL,col3 REAL,col4 REAL,col5 INTEGER,col6 INTEGER) AS $BODY$ SELECT ceil(rank() OVER (ORDER BY entry_date) / $1)::int as grp,entry_date,col1,col2,col3,col4,col5,col6 FROM table_foo ORDER BY 1; $BODY$LANGUAGE sql;
Final statement returns bigint instead of integer
我不明白错误信息,特别是因为我期待一个RECORD(井表)类型.
[[编辑]]
我按照评论中的建议将grp数据类型更改为BIGINT,但是我得到了同样的错误.细节:
ERROR: return type mismatch in function declared to return record DETAIL: Final statement returns integer instead of bigint at column 1. CONTEXT: sql function "custom_group"