基础数据方法:

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;

最终数据处理方法:

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
);

查询数据库中的聚合函数

SELECT DISTINCT(proname) FROM pg_proc WHERE proisagg order by proname 查所有

SELECT * FROM pg_proc WHERE proname like 'agg%' AND proisagg;查所有agg开头的

字符串拼接聚合函数:

CREATE AGGREGATE group_concat(anyelement)
( sfunc = array_append, -- 每行的操作函数,将本行append到数组里 stype = anyarray, -- 聚集后返回数组类型 initcond = '{}' -- 初始化空数组 );

最新文章

  1. 项目里面Swift和OC 交叉使用
  2. 使用MongoDB作为后台数据库的尝试
  3. ”isEqual“ ”isEqalToString“ 和“==”三者区别
  4. hdu----(4686)Arc of Dream(矩阵快速幂)
  5. 转(JSONP处理跨域事件)
  6. Java 计算两个日期相差月数
  7. HTTP - Session 机制
  8. 1 Winform 异步更新控件
  9. Swift是一个提供RESTful HTTP接口的对象存储系统
  10. 关于调用约定(cdecl、fastcall、、thiscall) 的一点知识(用汇编来解释)good
  11. 现在,以编程方式在 Electron 中上传文件,是非常简单的!
  12. [转] Freemarker的常用技巧总结
  13. openSUSE虚拟机安装并连接Xshell
  14. C#需要在项目程序生成前后执行相关的事件
  15. Codeforces 785D - Anton and School - 2 - [范德蒙德恒等式][快速幂+逆元]
  16. JS判断手机还是电脑访问网站
  17. JS 使用const声明常量的本质(很多人都有误解)
  18. springBoot属性配置和使用
  19. 浅谈TCP拥塞控制算法
  20. iOS Reachability检测网络状态

热门文章

  1. [LeetCode] Binary Tree Pruning 二叉树修剪
  2. 问题:CGI返回给前端的汉字数据是乱码(已解决)
  3. 香茅油:不只是驱虫剂 new
  4. Cmake用法
  5. VueJS教程
  6. Web开发(调试方法 F12)
  7. 关于parseInt()里的一些小坑
  8. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
  9. 创建docker公共仓库
  10. rpc轻量级框架实例