postgresql 自定义聚合函数
基础数据方法:
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 自定义聚合函数的更多相关文章
- ORACLE 自定义聚合函数
用户可以自定义聚合函数 ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...
- SQL Server 自定义聚合函数
说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...
- oracle 自定义 聚合函数
Oracle自定义聚合函数实现字符串连接的聚合 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum ...
- Spark基于自定义聚合函数实现【列转行、行转列】
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...
- sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
采用c#开发dll,并添加到sql server 中. 具体代码,可以用visual studio的向导生成模板. using System; using System.Collections; us ...
- oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
create or replace function MAX_O3_8HOUR_ND(value NUMBER) return NUMBER parallel_enable aggregate usi ...
- SQL SERVER 2005允许自定义聚合函数-表中字符串分组连接
不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict ID NAME CATEGORY 1 RED COLOR ...
- SQL SERVER 2005允许自定义聚合函数
不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict ID NAME CATEGORY 1 RED COLOR ...
- postgresql 所有聚合函数整理
SELECT DISTINCT(proname) FROM pg_proc WHERE proisagg order by proname 查所有 SELECT * FROM pg_proc WHER ...
随机推荐
- dup(dup2/dup3)
readme man~ NAME dup, dup2, dup3 - duplicate a file descriptor SYNOPSIS #include <unistd.h> in ...
- Java 中 String 的字面量与 intern 方法
下方代码主要说明: String b = new String("xyz") 创建2个对象,一个在常量池中的 "xyz",一个 String 实例对象,返回的 ...
- CentOS7 64位安装mysql教程
参考链接:http://baijiahao.baidu.com/s?id=1597184796823517712&wfr=spider&for=pc https://www.cnblo ...
- WPF DataGrid分页功能实现代码
在Silverlight中DataGrid分页可以结合DataPager控件很容易实现,但是在WPF中没有类似的,需要手动实现这样一个控件: 1.创建一个UserControl,DP.xaml,代码如 ...
- :before和::before的区别
单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素.伪元素和伪类之所以这么容易混淆,是因为他们的效果类似而且写法相仿,但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示, ...
- docker-compose.yml 示例
version: ' services: kafka2mongo-: image: hub.windinfo.cn/goldwind/databack: environment: KAFKA_ADDR ...
- RuntimeError: implement_array_function method already has a docstring
根源:Numpy/Scipy/Pandas/Matplotlib/Scikit-learn 出现冲突 解决办法: pip uninstall scikit-learn pip uninstall ma ...
- 在vue中使用lang="scss"出现报错解决思路
最近在学习vue框架,使用lang="scss" 出现如下错误: This dependency was not found: * !!vue-style-loader!css-l ...
- 如何优化 ThreadPoolExecutor
一.想让线程池在初始化时就干活,而不是等到第一次提交任务时才创建线程,该怎么做? /** * Starts all core threads, causing them to idly wait fo ...
- windows 下使用 protobuf
下载protobuf 下载地址:https://github.com/google/protobuf/releases 选择protoc-xxx-win32.zip下载 配置环境变量 将解压出来的pr ...