方法1
CREATE OR REPLACE FUNCTION public.sfun_test1( results numeric[],val numeric) RETURNS numeric[] LANGUAGE ‘plpgsql‘ COST 100 VolATILE AS $BODY$BEGIN results :=array_append(results,val);RETURN results;END;$BODY$;ALTER FUNCTION public.sfun_test1(numeric[],numeric) OWNER TO postgres;
方法2:
CREATE OR REPLACE FUNCTION public.sffun_test1( results numeric[]) RETURNS numeric LANGUAGE ‘plpgsql‘ COST 100 VolATILE AS $BODY$DECLARE ppp integer;--百分位指标 kkk numeric;--序号 sss integer;--序号 ret numeric[];--结果BEGIN ppp=90;--第90百分位 kkk=1+(array_length(results,1)-1)*ppp/100::numeric; sss=floor(kkk); ret=array_sort(results,‘asc‘);RETURN ret[sss]+(ret[sss+1]-ret[sss])*(kkk-sss);END;$BODY$;ALTER FUNCTION public.sffun_test1(numeric[]) OWNER TO postgres;
创建聚合函数
CREATE AGGREGATE agg_test1(BASETYPE = numeric,SFUNC = sfun_test1,STYPE = numeric[],FINALFUNC = sffun_test1);总结
以上是内存溢出为你收集整理的postgresql 自定义聚合函数全部内容,希望文章能够帮你解决postgresql 自定义聚合函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)