基础数据方法:

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 = '{}' -- 初始化空数组 );

postgresql 自定义聚合函数的更多相关文章

  1. ORACLE 自定义聚合函数

    用户可以自定义聚合函数  ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...

  2. SQL Server 自定义聚合函数

    说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...

  3. oracle 自定义 聚合函数

    Oracle自定义聚合函数实现字符串连接的聚合   create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象      sum ...

  4. Spark基于自定义聚合函数实现【列转行、行转列】

    一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...

  5. sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值

    采用c#开发dll,并添加到sql server 中. 具体代码,可以用visual studio的向导生成模板. using System; using System.Collections; us ...

  6. oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值

    create or replace function MAX_O3_8HOUR_ND(value NUMBER) return NUMBER parallel_enable aggregate usi ...

  7. SQL SERVER 2005允许自定义聚合函数-表中字符串分组连接

    不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict  ID  NAME  CATEGORY  1 RED  COLOR  ...

  8. SQL SERVER 2005允许自定义聚合函数

    不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict  ID  NAME  CATEGORY  1 RED  COLOR  ...

  9. postgresql 所有聚合函数整理

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

随机推荐

  1. Contributed to JFairy

    虽然delay了一个多月才看到,但第一次被一个开源项目正式感谢,开心. 其实写过的很多东西都有机会contr的,只是有些是公司代码...

  2. css页面滚动触发动画

    参考页面:http://www.jq22.com/jquery-info1384

  3. thinkPHP3.2使用__ROOT__显示为空,为什么

    在模板展示上传文件的时候用了__ROOT__,但是显示为空. 在网上找解决办法,改为__ROOT__/,然后就可以了

  4. Codeforces 1154E - Two Teams - [线段树+链表]

    题目链接:https://codeforces.com/contest/1154/problem/E 题意: $n$ 个人排成一排,第 $i$ 个人的能力值为 $a[i]$,$a[1 \sim n]$ ...

  5. PHP Xdebug + PhpStorm调试远程服务器代码

    1.服务器(linux centos)安装xdebug pecl install xdebug 注意看安装完成之后会显示 debug.so 的路径,记录下来 2.配置 php.ini如果不知道php. ...

  6. laravel读取excel

    $filePath = 'storage/exports/成员信息.xls'; Excel::load($filePath, function ($reader) {// $data = $reade ...

  7. atmega16功耗实测

    晶振32.768K 电压           电流 1.82          10ua 2.00          15ua 2.5             28ua 3.3            ...

  8. html/jsp导出pdf格式的几种方法(jsPDF,iText,wkhtmltopdf)

    在许多生成报表的时候需要我们后台作出动态的数据,并渲染到前端生成pdf格式,Excel格式的各种报表,但是浏览器自带的生成pdf功能,windows系统的ctrl+p键就能完全搞定这一需求,但对客户来 ...

  9. TZOJ 5271: 质因数的个数

    求正整数N(N>1)的质因数的个数. 相同的质因数需要重复计算.如120=2*2*2*3*5,共有5个质因数. 输入 可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N< ...

  10. VMware运行gazebo,关于vmw_ioctl_command error Invalid argument错误

    运行rviz 时报  VMware: vmw_ioctl_command error 无效的参数.  这个错误. 或者 运行gazebo,关于vmw_ioctl_command error Inval ...