Postgresql Postgres聚合函数返回错误值,状态转换函数ok

Postgresql Postgres聚合函数返回错误值,状态转换函数ok,postgresql,aggregate-functions,Postgresql,Aggregate Functions,我在postgresql中创建了一个聚合函数,它不会返回预期结果,即使转换函数按预期工作。以下是定义: -状态:\ hil覆盖非hil 将类型转换状态创建为 原文, 原文, ai文本, 艾希文, 专家文本 ; -最终状态函数: -如果合并源为修复->假 -如果expert为replace->false -如果合并ai为reapir->true 创建或替换函数转换\u最终转换\u状态 返回布尔值 语言plpgsql 作为$function$ 声明 源文本; 艾希文; 开始 source=COALE

我在postgresql中创建了一个聚合函数,它不会返回预期结果,即使转换函数按预期工作。以下是定义:

-状态:\ hil覆盖非hil 将类型转换状态创建为 原文, 原文, ai文本, 艾希文, 专家文本 ; -最终状态函数: -如果合并源为修复->假 -如果expert为replace->false -如果合并ai为reapir->true 创建或替换函数转换\u最终转换\u状态 返回布尔值 语言plpgsql 作为$function$ 声明 源文本; 艾希文; 开始 source=COALESCEconversion.source\u hil,conversion.source; 如果source='REPAIR',则返回false;如果结束; 如果conversion.expert='REPLACE',则返回false;如果结束; ai_hil:=COALESCEconversion.ai_hil,conversion.ai; 返回ai_hil=‘修复’; 终止 $function$; 此函数按预期工作

创建或替换函数转换\状态\转换 状态转换\状态,阶段枚举\评估\阶段,评估文本 返回organizer.rr\u转换\u状态 语言plpgsql 作为$function$ 声明 r_状态; 开始 如果阶段='source' 然后 选择assessment、state.source\u hil、state.ai、state.ai\u hil、state.expert进入r.source、r.source\u hil、r.ai、r.ai\u hil、r.expert; 如果结束; 如果阶段='source\u hil' 然后 选择state.source、assessment、state.ai、state.ai_hil、state.expert进入r.source、r.source_hil、r.ai、r.ai_hil、r.expert; 如果结束; 如果阶段='ai' 然后 选择state.source、state.source\u hil、assessment、state.ai\u hil、state.expert进入r.source、r.source\u hil、r.ai、r.ai\u hil、r.expert; 如果结束; 如果阶段='ai_hil' 然后 选择state.source、state.source\u hil、state.ai、assessment、state.expert进入r.source、r.source\u hil、r.ai、r.ai\u hil、r.expert; 如果结束; 如果阶段=‘专家’ 然后 选择state.source、state.source\u hil、state.ai、state.ai\u hil,评估为r.source、r.source\u hil、r.ai、r.ai\u hil、r.expert; 如果结束; 返回r; 终止 $function$; 状态转换功能也按预期工作,根据阶段值用评估填充相应的状态字段

现在,聚合函数的定义和使用非常简单:

-聚合函数。当评估按id、区域分组时,使用它将阶段、评估字符串转换为转换 创建聚合转换\u数量\u评估\u阶段,文本 SFUNC=转换状态转换, FINALFUNC=转换\最终, STYPE=转换状态, INITCOND='NULL,NULL,NULL,NULL,NULL' ; 根据需要创建或替换视图转换 选择assessment.id, A.区域, 转换\u aassessments.stage,assessment.assessment \u字符串作为转换 根据评估 其中assessments.type='REPAIR\u REPLACE' 按assessments.id、assessments.area分组; 当我检查这个视图的结果时,我得到了错误的结果。你知道会发生什么吗?一方面,我怀疑分组可能会影响结果,但我不知道如何修复它