mysql listagg within_Oracle函数之LISTAGG

article/2025/10/4 10:59:45

最近在学习的过程中,发现一个挺有意思的Oracle函数,它可实现对列值的拼接。下面我们来看看其具体用法。

最近在学习的过程中,发现一个挺有意思的Oracle函数,它可实现对列值的拼接。下面我们来看看其具体用法。

用法:

21e6bdace13a6bd15c32f1ddb232a365.png

对其作用,官方文档的解释如下:

For a specified measure, LISTAGG orders data within each group specified in the ORDER BY clause and then concatenates the values of the measure column.

即在每个分组内,LISTAGG根据order by子句对列植进行排序,,将排序后的结果拼接起来。

measure_expr:可以是任何基于列的表达式。

delimiter:分隔符,默认为NUL

order_by_clause:order by子句决定了列值被拼接的顺序。

通过该用法,可以看出LISTAGG函数不仅可作为一个普通函数使用,也可作为分析函数。

order_by_clause和query_partition_clause的用法如下:

9d054963add0088b8e8372f831a642d5.png

09ef24ccaa1b0c3d3b8e16fad1ebed2d.png

下面对该函数进行举例说明:

普通函数,对工资进行排序,用逗号进行拼接。

SQL)within group(order by sal)name fromemp;

NAME----------------------------------------------------------------------------------------------------

SMITH,JAMES,ADAMS,MARTIN,WARD,MILLER,TURNER,ALLEN,CLARK,BLAKE,JONES,FORD,SCOTT,KING

分组函数:

SQL)within deptno;

DEPTNO NAMEMILLER,CLARK,KING20SMITH,ADAMS,JONES,FORD,SCOTT30 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE

分析函数:

SQL)within group(order by sal)over(partition by deptno)name fromemp;

DEPTNO ENAME

SAL NAMEMILLER

1300MILLER,CLARK,KING10 CLARK

2450MILLER,CLARK,KING10 KING

5000MILLER,CLARK,KING20 SMITH

800SMITH,ADAMS,JONES,SCOTT,FORD20 ADAMS

1100SMITH,ADAMS,JONES,SCOTT,FORD20 JONES

2975SMITH,ADAMS,JONES,SCOTT,FORD20 SCOTT

3000SMITH,ADAMS,JONES,SCOTT,FORD20 FORD

3000SMITH,ADAMS,JONES,SCOTT,FORD30 JAMES

950JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 MARTIN

1250JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 WARD

1250JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 TURNER

1500JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 ALLEN

1600JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE30 BLAKE

2850JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE14 rows selected.

本文永久更新链接地址:

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!


http://chatgpt.dhexx.cn/article/P1GmBH63.shtml

相关文章

listagg

1.创建数据表,准备测试数据 CREATE TABLE MK_STUDENT(ID NUMBER(18) NOT NULL,STU_NAME VARCHAR2(200),STU_SCORE VARCHAR2(50),PRIMARY KEY (ID) ); ALTER TABLE MK_STUDENT ADD KEMU VARCHAR2(200);INSERT INTO MK_STUDENT (ID,STU_NAME,STU_SCORE,KEMU) VALUES …

listagg( )详解

想象一个场景,现实生活中一个人有许多手机号已是常态,数据库中也会有类似的结构。 大家肯定想知道listagg()有什么样的效果: 案列分析 一个表中有许多数据,名字叫张三的有许多手机号。希望查询结果出来是分组且清晰。 select …

Oracle列转行函数 Listagg()详解

详解 listagg()函数可以实现多列记录聚合为一条记录,从而实现数据的压缩、致密化(data densification) 基本用法 像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来 LISTAGG(XXX,XXX) WI…

Oracle 中 LISTAGG 函数的介绍以及使用

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

矩阵乘以其矩阵转置求导-数学

20210703 矩阵论 https://zhuanlan.zhihu.com/p/288541909?utm_sourcewechat_session 矩阵运算法则 20210529 https://blog.csdn.net/Lisa_Ren_123/article/details/81983785 矩阵转置求导 https://jingyan.baidu.com/article/da1091fb69f0b7027849d612.html

matlab中怎么求矩阵的转置

第一步我们首先需要知道matlab中矩阵后面加单引号是共轭转置,加点和单引号是转置,如下图所示: matlab中怎么求矩阵的转置 第二步在matlab命令行窗口中输入“ A[1 2 4;5 6 7]”,如下图所示: matlab中怎么求矩阵的转…

矩阵的转置等于矩阵的逆

http://zhidao.baidu.com/question/334500638.html 百度知道三个回答 矩阵A的转置矩阵A^T等于A的逆矩阵A^-1 那么AA^TAA^-1E 设A(α1,α2,α3,...,αn)^T,其中αi为n维列向量, 那么A^T(α1,α2&…

矩阵转置运算简单总结

矩阵转置的运算规律: (1); (2); (3); (4); (5)

矩阵的转置

稀疏矩阵: 当一个矩阵中的很多元素都是零,而且非零元素的分布没有规律时,该矩阵称为稀疏矩阵。 稀疏矩阵的压缩存储方法: 从稀疏矩阵的概念,我们可以知道,稀疏矩阵的大多元素都是零。所以,我们只…

转置矩阵,逆矩阵和倒转置矩阵

单位矩阵: 转置矩阵(transpose matrix) 在线性代数中,矩阵A的转置是另一个矩阵AT(也写做Atr, tA或A′)由下列等价动作建立: 把A的横行写为AT的纵列把A的纵列写为AT的横行 形式上说,m n矩阵A的转置是n m矩阵 for 。…

矩阵的乘法和转置

矩阵的乘法 矩阵的转置 A的转置为 ​​​​​​​ 反对称矩阵主对角线上全为0;

矩阵与转置

1.转置矩阵 1.1转置矩阵简介 把矩阵A的行换成同序数的列得到的新矩阵,叫做A的转置矩阵(Transpose of a Matrix),记作ATAT。 例如: 因此,转置矩阵的特点: (1)转置矩阵的行数是原矩阵的列数&…

矩阵转置

矩阵转置 1. n*n 对角线置换 #include <stdio.h> //编写函数&#xff1a;实现4*4矩阵的转置。 //要求&#xff1a;在main函数中定义二维数组、输入数据、输出原矩阵、调用函数、输出转置后的矩阵。 int ZhuanZhi(int arr[][4]){int temp;for(int i0;i<4;i){ for(int …

矩阵乘以它的转置

矩阵乘以它的转置 AA^T| |A| |A^T| |A||A| |A|^2即矩阵A乘以A的转置等于A的行列式的平方。 明显不等于啦&#xff0c;1*2的矩阵转置矩阵为2*1&#xff0c;那么1*2的矩阵乘以2*1的转置矩阵得到一个1*1的矩阵&#xff0c;而2*1的转置矩阵乘以1*2的矩阵得到一个2*2的矩阵 这个…

矩阵转置与矩阵相乘

1.转置矩阵 1.1转置矩阵简介 把矩阵A的行换成同序数的列得到的新矩阵&#xff0c;叫做A的转置矩阵(Transpose of a Matrix)&#xff0c;记作ATAT。 例如&#xff1a; 因此&#xff0c;转置矩阵的特点&#xff1a; &#xff08;1&#xff09;转置矩阵的行数是原矩阵的列数&…

gyp linux,使用gyp

GYP(Generate You Project)&#xff0c;生成IDE项目的工具&#xff0c;使用Python脚本写成&#xff0c;配置文件为JSON格式。 使用gyp需要两个环境&#xff0c;python和gyp。gyp可以直接在这里下载 git clone https://chromium.googlesource.com/external/gyp 一般下载到build/…

gyp ERR!报错解决

项目安装依赖包的时候&#xff0c;多次出现gyp ERR&#xff01;或者node-pre-gyp ERR!这种错&#xff0c;记录一下最近遇到的报错&#xff1a; 用过两次这种解决办法&#xff0c;都能把依赖下好&#xff0c;项目跑起来 npm instal --unsafe-perm 或者 yarn --unsafe-perm 运…

解决gyp err 错误

npm install 安装失败 有一堆报错&#xff0c;大概意思就是node-gyp没有安装成功&#xff0c;以及需要一些python的环境 解决步骤 1、安装python环境 2、以管理员身份执行 npm install --g --production windows-build-tools 3、之后在安装完成后会在C:WindowsSystem32里找到一…