oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
create or replace function MAX_O3_8HOUR_ND(value NUMBER) return NUMBER
parallel_enable aggregate using MAX_O3_8HOUR;
CREATE OR REPLACE TYPE MAX_O3_8HOUR as object (
--聚合函数的实质就是一个对象
num NUMBER,
var_array type_array,
static function ODCIAggregateInitialize(v_self in out MAX_O3_8HOUR) return number,
--对象初始化
member function ODCIAggregateIterate(self in out MAX_O3_8HOUR, value in number) return number,
--聚合函数的迭代方法(这是最重要的方法)
member function ODCIAggregateMerge(self in out MAX_O3_8HOUR, v_next in MAX_O3_8HOUR) return number,
--当查询语句并行运行时,才会使用该方法,可将多个并行运行的查询结果聚合 member function ODCIAggregateTerminate(self in MAX_O3_8HOUR, return_value out number ,v_flags in number) return number
--终止聚集函数的处理,返回聚集函数处理的结果.
)
create or replace type body MAX_O3_8HOUR is
static function ODCIAggregateInitialize(v_self in out MAX_O3_8HOUR) return number is
begin
--对象初始化
v_self := MAX_O3_8HOUR(0,type_array(0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0));
return ODCICONST.Success;
end;
member function ODCIAggregateIterate(self in out MAX_O3_8HOUR, value in number) return number is
begin
--聚合函数的迭代方法(这是最重要的方法)
self.num:=self.num+1;
self.var_array(self.num):=value; return ODCICONST.Success;
end;
member function ODCIAggregateMerge(self in out MAX_O3_8HOUR, v_next in MAX_O3_8HOUR) return number is
begin
--当查询语句并行运行时,才会使用该方法,可将多个并行运行的查询结果聚合
return ODCICONST.Success; end;
member function ODCIAggregateTerminate(self in MAX_O3_8HOUR, return_value out number ,v_flags in number) return number is
n number;
re number;
hour8 number;
begin
--终止聚集函数的处理,返回聚集函数处理的结果.
--oracle数组序列从1开始 n:=self.num-7;
re:=0;
for i in 1..n loop
hour8:=0;
for j in i..(i+7) loop
hour8:=hour8+self.var_array(j);
end loop; IF re<hour8 THEN
re:=hour8;
END IF;
end loop; return_value:=ceil(re/8);
return ODCICONST.Success;
end;
end;
oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值的更多相关文章
- sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
采用c#开发dll,并添加到sql server 中. 具体代码,可以用visual studio的向导生成模板. using System; using System.Collections; us ...
- oracle 自定义 聚合函数
Oracle自定义聚合函数实现字符串连接的聚合 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum ...
- ORACLE 自定义聚合函数
用户可以自定义聚合函数 ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...
- Spark基于自定义聚合函数实现【列转行、行转列】
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...
- SQL Server 自定义聚合函数
说明:本文依据网络转载整理而成,因为时间关系,其中原理暂时并未深入研究,只是整理备份留个记录而已. 目标:在SQL Server中自定义聚合函数,在Group BY语句中 ,不是单纯的SUM和MAX等 ...
- MySQL聚合函数在计算时,不会自动匹配与之相对应的数据
学习mysql过程中遇到了一个困惑,纠结了我半天时间,刚刚又重新复习了一下,终于知道问题所在 以下是一个需求: 取得平均薪水最高的部门的部门编号 代码如下: select deptno, avg(sa ...
- oracle sum()聚合函数
原文链接:https://blog.csdn.net/cizatu5130/article/details/100291347 oracle sum()聚合函数 2016-05-13 20:08:00 ...
- Oracle自定义聚集函数
今天工作中看见别人写的自定义聚集函数,所以一门心思的想搞懂,就在网上找资料了. 自定义聚集函数 自定义聚集函数接口简介 Oracle提供了很多预定义好的聚集函数,比如Max(), Sum(), AVG ...
- java:Oracle(聚合函数,多表查询,表之间的关系)
1.聚合函数 --max,min,sum,avg,count,nvl(,) -- max:最大值 -- max既能取数字的最大值,也可以取字符串的最大值(英文字母排列顺序),根据场景实际意义来看,最好 ...
随机推荐
- Linux环境命令大全
java环境比较常用的几个命令: cd / 切换目录, cd ../切换到上级目录 rm -rf 文件名 删除文件 jar -xvf 文件名 解压文件 mv 文件 新路径 将当前路径下面的文件移 ...
- shell中引用其他脚本的方法
在Shell中引用其他脚本的方法是source filename.sh 或 . filename.sh 注意: . 和 filename.sh之间必须有空格
- [ROS]1 小乌龟
对于一个新新新手,Linux,ROS都要学习.安装ROS真的很讨厌了,于是采用易科机器人实验室的ubuntu12.04-amd64-ros-exbot-h2-140520版本. 测试一下小乌龟节点.主 ...
- 线性四叉树十进制Morton码计算示例
线性四叉树十进制Morton码计算,具体算法描述龚健雅<地理信息系统基础>P108
- 注册页面的简单搭建(H5)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- iOS 可延展视图(点击前显示部分文字,点击后显示全部)
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicat ...
- openId 列表
http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html 根据OpenID列表群发[订阅号不可用,服务号认证后可用] ...
- js - ajax中的get和post说明
转自:http://www.cnblogs.com/hateyoucode/archive/2009/12/09/1620050.html 一.谈Ajax的Get和Post的区别 Get方式: 用 ...
- Java基础之读文件——使用通道随机读写文件(RandomReadWrite)
控制台程序,使用通道随机读写primes_backup.bin文件. import static java.nio.file.StandardOpenOption.*; import java.nio ...
- linux:什么是linux
1>.linux是一套作业系统(linux就是核心与呼叫这两层),每一种作业系统都是在他专门的硬体机器上面运行的:linux是一个Open Source的作业系统,具有可移植性 2>.li ...