listagg oracle10_HLOOKUP函数

listagg oracle10_HLOOKUP函数LISTAGG函数介绍listagg函数是Oracle11.2推出的新特性。其主要功能类似于wmsys.wm_concat函数,即将数据分组后,把指定列的数据再通过指定符号合并。LISTAGG使用listagg函数有两个参数: 1、要合并的列名 2、自定义连接符号☆LISTAGG函数既是分析函数,也是聚合函数所以,它有两种用法: 1、分析函数…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

LISTAGG 函数介绍

listagg 函数是 Oracle 11.2 推出的新特性。
其主要功能类似于 wmsys.wm_concat 函数, 即将数据分组后, 把指定列的数据再通过指定符号合并。

LISTAGG 使用

listagg 函数有两个参数:
		1、 要合并的列名
		2、 自定义连接符号

☆LISTAGG 函数既是分析函数,也是聚合函数
所以,它有两种用法:
		1、分析函数,如: row_number()、rank()、dense_rank() 等,用法相似
		listagg(合并字段, 连接符) within group(order by 合并的字段的排序) over(partition by 分组字段)
		2、聚合函数,如:sum()、count()、avg()等,用法相似
		listagg(合并字段, 连接符) within group(order by 合并字段排序)		--后面跟 group by 语句

(补充)分析函数和聚合函数

一部分聚合函数其实也可以写成分析函数的形式。

分析函数和聚合函数本质上都是对数据进行分组,二者最大的不同便是:
	对数据进行分组分组之后,
	聚合函数只会每组返回一条数据,
	而分析函数会针对每条记录都返回,
		一部分分析函数还会对同一组中的数据进行一些处理(比如:rank() 函数对每组中的数据进行编号);
		还有一部分分析函数不会对同一组中的数据进行处理(比如:sum()、listagg()),这种情况下,分析函数返回的数据会有重复的,distinct 处理之后的结果与对应的聚合函数返回的结果一致。

LISTAGG 实例

先构造几笔临时数据
with test as(
SELECT 'SNO-0010210' S_NO,'1002' ITEM_NO,'BruceLiu' CUS_NAME,'15632148754' TEL,'深圳' ADDRESS FROM DUAL
UNION
SELECT 'SNO-0010210' S_NO,'1003' ITEM_NO, 'CandySun' CUS_NAME,'19745233214' TEL, '南京' ADDRESS FROM DUAL
UNION
SELECT 'SNO-0010211' S_NO, '1003' ITEM_NO,'QianSan' CUS_NAME,'19745233214' TEL,'南京' ADDRESS FROM DUAL
UNION 
SELECT 'SNO-0010212' S_NO,'1005' ITEM_NO,'HuiClear' CUS_NAME,'19745233214' TEL,'白银' ADDRESS FROM DUAL
UNION
SELECT 'SNO-0010212' S_NO,'1007' ITEM_NO,'CatBool' CUS_NAME,'19745233214' TEL,'重庆' ADDRESS FROM DUAL
UNION
SELECT 'SNO-0010212' S_NO,'1004' ITEM_NO,'Liability' CUS_NAME,'18812436214' TEL,'成都' ADDRESS FROM DUAL
)

test

LISTAGG 分析函数用法
SELECT T.S_NO,
       LISTAGG(T.ITEM_NO, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) ITEM_NO,
       LISTAGG(T.CUS_NAME, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) CUS_NAME,
       LISTAGG(T.TEL, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) TEL,
       LISTAGG(T.ADDRESS, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) ADDRESS
  FROM test T
 GROUP BY T.S_NO;

res1

LISTAGG 聚合函数用法
SELECT T.S_NO,
       LISTAGG(T.ITEM_NO, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) ITEM_NO,
       LISTAGG(T.CUS_NAME, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) CUS_NAME,
       LISTAGG(T.TEL, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) TEL,
       LISTAGG(T.ADDRESS, '/') WITHIN GROUP(ORDER BY T.S_NO, T.ITEM_NO) OVER(PARTITION BY T.S_NO) ADDRESS
  FROM test T;

res2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196411.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • keil c51注册机2032

    keil c51注册机2032keilc51是一款非常优秀的C语言单片机编程软件,同时也是美国KeilSoftware公司出品的51系列软件,是兼容单片机C语言软件开发系统的最新版本,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而使得用户易学易用。但是软件是需要收费的,或者是功能上有所限制,因此小编今天为大家带来了keilc51注册码,同样也是注册机,详细的使用教程,以软件安装为例,且期限是到2032年有效,亲测有效,有需要的朋友欢迎下载体验。原文链接:http://www.ddooo.com/soft

    2022年6月12日
  • cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    cacheable更新_详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用注释介绍@Cacheable@Cacheable的作用主要针对方法配置,能够根据方法的请求参数对其结果进行缓存@Cacheable作用和配置方法参数解释examplevalue缓存的名称,在spring配置文件中定义,必须指定至少一个例如:@Cacheable(value=”mycache”)@Cacheable(value={”cache1”,”cache2”}key缓存的key,可…

    2022年11月2日
  • mongodb服务启动失败_mongodb启动不了

    mongodb服务启动失败_mongodb启动不了在操作前需要启动mongodb数据库服务1.首先打开dos窗口,然后选择路径到你的安装路径下的bin目录(我的路径是的D:mongo\mongodb\bin)2.然后输入启动命令(D:mongo\data\db是我的数据库文件的目录前边两个–不能少)mongod–dbpathD:mongo\data\db3.回车dos界面出现12701的字样说明服务启动成功了如…

    2022年4月19日
  • 摘抄自知乎–由华为裁员传闻引发的思考:年轻人如何避免中年危机?

    摘抄自知乎–由华为裁员传闻引发的思考:年轻人如何避免中年危机?原文:https://www.zhihu.com/question/56419319回答者:王辰—-部分摘抄—- HelloJohn: 记得自己的来处,可能不是件坏事。你是知道我的来处的,其他的人,想写我的过去都不那么准确。 他们说我的工作是从9点到5点的,其实从来就不是9点到5点。事实上…

    2022年7月18日
  • 芯片行业未来_为什么中国没有自己的芯片架构

    芯片行业未来_为什么中国没有自己的芯片架构【CSDN编者按】随着设备扩展带来的效益越来越少,人们开始设计内置AI的系统,以在本地处理更多数据。芯片制造商正在研究一种新的结构,这种结构能够显著增加每能耗和每个时钟周…

    2022年9月7日
  • 前端使用ajax_ajax属于前端吗

    前端使用ajax_ajax属于前端吗原生AJAX名称:异步的javascriptandxml原理:通过XMLHttpRequest与服务器交换数据服务器数据通过json或者xml格式返回浏览器通过js+css渲染展示数据GET创建xhropen打开连接监听readystatereadyState4准备状态完毕status状态码200响应成功send发送<buttonid=”btn”>点击</button> <pid=”content”></p

    2022年9月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号