oracle:自定义多行合并聚合函数
-------------------- --------------
中国 香港
中国 上海
日本 东京
日本 大阪
COUNTRY CITY
-------------------- ---------------
中国 台北 香港 上海
日本 东京 大阪
select country,strcat(city) from t_city group by country;
1.创建类型
create or replace type strcat_type as object
(
cat_string varchar2(4000),
static function ODCIAggregateInitialize(cs_ctx In Out strcat_type)
return number,
member function ODCIAggregateIterate(self In Out strcat_type,
value in varchar2) return number,
member function ODCIAggregateMerge(self In Out strcat_type,
ctx2 In Out strcat_type) return number,
member function ODCIAggregateTerminate(self In Out strcat_type,
returnValue Out varchar2,
flags in number)
return number
);
2. 创建类型体
create or replace type body strcat_type is
static function ODCIAggregateInitialize(cs_ctx IN OUT strcat_type)
return number is
begin
cs_ctx := strcat_type(null);
return ODCIConst.Success;
end; member function ODCIAggregateIterate(self IN OUT strcat_type,
value IN varchar2) return number is
begin
self.cat_string := self.cat_string || ';' || value;
return ODCIConst.Success;
end; member function ODCIAggregateTerminate(self IN Out strcat_type,
returnValue OUT varchar2,
flags IN number) return number is
begin
returnValue := ltrim(rtrim(self.cat_string, ';'), ';');
return ODCIConst.Success;
end; member function ODCIAggregateMerge(self IN OUT strcat_type,
ctx2 IN Out strcat_type) return number is begin
self.cat_string := self.cat_string || ';' || ctx2.cat_string;
return ODCIConst.Success;
end;
end;
3.创建函数
CREATE OR REPLACE FUNCTION strcat(input varchar2) RETURN varchar2
PARALLEL_ENABLE
AGGREGATE USING strcat_type;
oracle:自定义多行合并聚合函数的更多相关文章
- Oracle学习(十一)聚合函数
AVG() 求平均数 --查询某列的平均值 SELECT AVG(列) FROM 表 COUNT()查询条数 -- 查询所有记录的条数 select count(*) from 表; -- 查询对应列 ...
- oracle中,行转列函数wm_concat()结果有长度限制,重写该函数解决
--Type CREATE OR REPLACE TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR clob, STATIC FUN ...
- Oracle11g聚合函数
聚合函数就是基于多行数据返回一行结果,下面就是Oracle提供的一些列聚合函数: AVG COLLECT CORR CORR_* COUNT COVAR_POP COVAR_SAMP CUME_DIS ...
- oracle 聚合函数 LISTAGG ,将多行结果合并成一行
LISTAGG( to_char(Item_Category_Name), ',') WITHIN GROUP(ORDER BY Item_Category_Name) -- 将 Item_Cate ...
- ORACLE 自定义聚合函数
用户可以自定义聚合函数 ODCIAggregate,定义了四个聚集函数:初始化.迭代.合并和终止. Initialization is accomplished by the ODCIAggrega ...
- Spark基于自定义聚合函数实现【列转行、行转列】
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是 ...
- oracle 自定义 聚合函数
Oracle自定义聚合函数实现字符串连接的聚合 create or replace type string_sum_obj as object ( --聚合函数的实质就是一个对象 sum ...
- oracle 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
create or replace function MAX_O3_8HOUR_ND(value NUMBER) return NUMBER parallel_enable aggregate usi ...
- oracle数据库函数之============‘’分析函数和聚合函数‘’
1分析函数 分析函数根据一组行来进行聚合计算,用于计算完成狙击的累积排名等,分析函数为每组记录返回多个行 rank_number() 查询结果按照次序排列,不存在并列和站位的情况,可以用于做Oracl ...
随机推荐
- 【英语】Bingo口语笔记(58) - blow系列
- AIX 第7章 指令记录
要点: AIX文件系统的访问路径 AIX文件系统目录树 创建AIX文件系统 文件系统的卸载和删除 文件系统的自动挂载 文件系统的容量管理 文件系统的一致性管理 文件系统的卸载失败 文件系统的快照管理 ...
- 转深入学习heritrix---体系结构(Overview of the crawler)
Heritrix采用了模块化的设计,它由一些核心类(core classes)和可插件模块(pluggable modules)构成.核心类可以配置,但不能被覆盖,插件模块可以被由第三方模块取代. ( ...
- JQuery Mobile实现手机新闻浏览器(2)
在上一篇文章中,已经讨论了程序的结构和页面的布局,并简单介绍了一些jQuery Mobile的使用技巧.在本篇文章中,笔者将继续完成我们web应用的新闻浏览器的设计. 程序的启动 我们现在来研究一下程 ...
- Web安全测试学习笔记(Cookie&Session)
一,Session:含义:有始有终的一系列动作\消息1, 隐含了“面向连接” 和“保持状态”两种含义2, 一种用来在客户端与服务器之间保持状态的解决方案3, 也指这种解决方案的存储结构“把××保存在s ...
- DzzOffice共享文件夹、共享目录设置
dzzoffice中共享目录的设置,是通过机构部门建立的. 首先打开机构用户管理.建立需要的机构和部门.这里机构和部门可以理解为共享目录的名称.也可以根据自己需要起名,并不一定是机构和部门的名字. 而 ...
- BF-KMP 算法
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string. ...
- 【LeetCode】102 - Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- [转] Web前端优化之 Javascript篇
原文链接: http://lunax.info/archives/3099.html Web 前端优化最佳实践之 JavaScript 篇,这部分有 6 条规则,和 CSS 篇 重复的有几条.前端优化 ...
- iOS 检测有没有安装其它应用 和ios9下要注意的地方
UIApplication *app = [UIApplication sharedApplication]; NSURL *url = [NSURL URLWithString:@"Tri ...