LISTAGG 函数
# LISTAGG 函数
对于查询中的每个组,LISTAGG 聚合函数根据 ORDER BY 表达式对该组的行进行排序,然后将值串联成一个字符串。
## 语法:
```sql
LISTAGG( [DISTINCT] aggregate_expression [, 'delimiter' ] )
[ WITHIN GROUP (ORDER BY order_list) ]
```
## 参数:
DISTINCT:
(可选) 用于在串联之前消除指定表达式中重复值的子句。尾部空格将被忽略,因此会将字符串 'a' 和 'a ' 视为重复值。LISTAGG 将使用遇到的第一个值。
aggregate_expression:
提供要聚合的值的任何有效表达式(如列名称)。忽略 NULL 值和空字符串。
delimiter分隔符:
(可选) 用于分隔串联的值的字符串常数。默认值为 NULL。
WITHIN GROUP (ORDER BY order_list):
(可选) 用于指定聚合值的排序顺序的子句。
```
## 返回值
```sql
VARCHAR(MAX)。如果结果集大于最大 VARCHAR 大小(64K – 1 或 65535),则 LISTAGG 返回以下错误:
Invalid operation: Result size exceeds LISTAGG limit
```
## 使用说明
```sql
如果语句包含多个使用 WITHIN GROUP 子句的 LISTAGG 函数,则每个 WITHIN GROUP 子句必须使用相同的 ORDER BY 值。(在oracle中可以使用不同的order by值)
oracle中使用WITHIN GROUP 子句可以使用不同的 ORDER BY 值:
SQL> select listagg(ENAME)
2 within group (order by MGR) as e_name,
3 listagg(SAL)
4 within group (order by JOB) as sal_all
5 from emp;
E_NAME
--------------------------------------------------------------------------------
SAL_ALL
--------------------------------------------------------------------------------
FORDSCOTTALLENJAMESMARTINTURNERWARDMILLERADAMSBLAKECLARKJONESSMITHKING东方东方
300030001100130080095024502850297550001250125015001600
oracle中使用WITHIN GROUP 子句使用相同的 ORDER BY 值:
SQL> select listagg(ENAME)
2 within group (order by MGR) as e_name,
3 listagg(HIREDATE)
4 within group (order by MGR) as e_date
5 from emp;
E_NAME
--------------------------------------------------------------------------------
E_DATE
--------------------------------------------------------------------------------
FORDSCOTTALLENJAMESMARTINTURNERWARDMILLERADAMSBLAKECLARKJONESSMITHKING东方东方
03-12月-8119-4月 -8703-12月-8108-9月 -8120-2月 -8122-2月 -8128-9月 -8123-1月 -82
23-5月 -8701-5月 -8102-4月 -8109-6月 -8117-12月-8017-11月-8126-11月-20
--在oracle中不能缺少within子句
SQL> select listagg(ENAME)
2 within group (order by MGR) as e_name,
3 listagg(HIREDATE) as e_date
4 from emp;
listagg(HIREDATE) as e_date
*
第 3 行出现错误:
ORA-02000: 缺失 WITHIN 关键字
示例
以下示例聚合按照部门分组聚合公司员工名称(名称按照,分隔)
SQL> select listagg(ENAME,',')
2 within group (order by MGR) as e_name
3 from emp;
E_NAME
--------------------------------------------------------------------------------
FORD,SCOTT,ALLEN,JAMES,MARTIN,TURNER,WARD,MILLER,ADAMS,BLAKE,CLARK,JONES,SMITH,K
ING,东方不败,独孤求败
```
相关文章:
LISTAGG 函数
# LISTAGG 函数 对于查询中的每个组,LISTAGG 聚合函数根据 ORDER BY 表达式对该组的行进行排序,然后将值串联成一个字符串。 ## 语法: sql LISTAGG( [DISTINCT] aggregate_expression [, delimiter ] ) [ WITHIN GROUP (ORDER BY order_list) ] …...
485modbus转profinet网关连三菱变频器modbus通讯配置案例
本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯。485modbus转profinet网关提供了可靠的连接方式,使用户能够轻松地将不同类型的设备连接到同一网络中。通过使用这种网关,用户可以有效地管理和监控设备,从…...
1024节日
程序员节日...
【@EnableWebMvc的原理】
用途 启用SpringMvc 的 Java 配置类,代替 xml 格式的配置文件。 一、查看运用(注解 EnableWebMvc ,实现 WebMvcConfigurer ) Component("com.ibicd") EnableWebMvc public class AppConfig implements WebMvcConfigu…...
css3 2d转换transform详细解析与代码实例transform
CSS3 Transform是CSS3的一个模块,其目的是为了通过对元素的变形、旋转、缩放、平移等操作,能够更加丰富的展示页面效果。下面是CSS3 Transform的详细解析与代码实例: transform属性 transform属性用于对元素进行变形操作,其属性…...
点亮现代编程语言的男人——C语言/UNIX之父Dennis Ritchie
祝各位程序员们1024程序员节快乐🎉🎉🎉 图片来自网络,侵删 前言 在程序员中,有一位人物的不被人熟知,他的贡献甚至比他自身更要出名 C语言之父,UNIX之父——Dennis MacAlistair Ritchie 一…...
找不到msvcp100.dll解决教程
在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp100.dll丢失”。这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题,本文将介绍四个修复msvcp100.dll丢失的方法,帮助读者快速恢复计算机的正常运…...
萃取和constexpr
最近重温了一下萃取发现其与constexpr有相似之处,记录如下。 一、引出萃取 STL的在中心思想是将容器和算法分开,再通过迭代器iterator这一迭代器来将两者粘合起来。 通过迭代器进行算法计算,需要涉及两个问题: 问题一.通常需要…...
决策树完成图片分类任务
数据集要求: 训练集 和 验证集 (要求分好) 图片放置规则 : 一个总文件夹 放类别名称的子文件夹 其中子文件夹 为存放同一类别图片 举个例子 分类动物 则 总文件夹名称为动物 子文件夹为 猫 狗 猪猪 。。。 其中猫的文件夹里面…...
Docker 容器全部停止命令
Docker是一个开源的容器化平台,它可以帮助开发者快速构建、部署和运行应用程序。在使用Docker时,我们通常会创建多个容器来运行不同的服务或应用。当我们需要停止所有的容器时,可以使用一些命令来实现。本文将介绍几种常见的停止所有Docker容…...
对GRUB和initramfs的小探究
竞赛时对操作系统启动过程产生了些疑问,于是问题导向地浅浅探究了下GRUB和initramfs相关机制,相关笔记先放在这里了。 内核启动流程 在传统的BIOS系统中,计算机具体的启动流程如下: 电源启动:当计算机的电源打开时&…...
springboo单机多线程高并发防止重复消费的redis方案
springboo单机多线程高并发防止重复消费的redis方案 仅提供方案与测试。 想法:第一次收到userCode时,检查是否在redis中有,如果有,就表明已经消费了,返回抢单失败;否则,就去消费,顺…...
Java架构师内功数据库
目录 1 导学2 数据库基本概念2.1 数据库系统2.2 三级模式-两级映像2.3 数据库设计2.4 数据模型2.4.1 E-R模型2.4.2 关系模型2.5 关系代数3 规范化和并发控制3.1 函数依赖3.2 键与约束3.3 范式3.3.1 第一范式1NF3.3.2 第二范式3.3.3 第三范式3.4 模式分解3.5 并发控制3.6 封锁协…...
踩着节日的小尾巴
节日快乐...
UG\NX二次开发 设置视图中心 UF_VIEW_set_center
文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 a1794902437 订阅本专栏,非常感谢。 简介 UG\NX二次开发 设置视图中心 UF_VIEW_set_center。如果视图NULL_TAG,则使用工作视图。 效果 代码 #include &qu…...
leetcode做题笔记201. 数字范围按位与
给你两个整数 left 和 right ,表示区间 [left, right] ,返回此区间内所有数字 按位与 的结果(包含 left 、right 端点)。 示例 1: 输入:left 5, right 7 输出:4示例 2: 输入&…...
游戏盾如何有效防护DDoS
从进入计算机时代以来,DDoS攻击一直是网络世界中的一大威胁,让无数服务陷入瘫痪。这种攻击的原理非常简单:攻击者使用大量的僵尸主机或蠕虫病毒,向目标服务器发送海量请求,迅速耗尽服务器的资源,使其无法继…...
JavaScript中的类型转换
将值从一种类型转换为另一种类型,a -> ‘a’ ,称为类型转换。转换分为两种,一种显式的,一种隐式的,隐式的往往也是强制类型转换。强制类型转换总是返回标量基本类型,不会返回对象和函数。 如何区分? 类型…...
01-JVM 内存结构
JVM 内存结构 Java 虚拟机的内存空间分为 5 个部分: 程序计数器Java 虚拟机栈本地方法栈堆方法区 JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对 JVM 规范中方法区的实现。不过…...
树与二叉树(考研版)
文章目录 树与二叉树树的基本概念结点、树属性的描述树的性质 二叉树的概念二叉树的性质二叉树的构建二叉树的遍历先序遍历中序遍历后序遍历层次遍历 递归算法和非递归算法的转换源代码 线索二叉树二叉树的线索化线索二叉树 找前驱/后继 树和森林树的存储 树与二叉树的应用哈夫…...
阅读APP书源实战手册:从入门到精通的全方位指南
阅读APP书源实战手册:从入门到精通的全方位指南 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 你是否曾因追更不同平台的小说而频繁切换应用?是否遇到过喜欢的作品突然下架或需要…...
手把手教你本地部署DeepSeek-R1 1.5B:极速CPU推理,隐私安全有保障
手把手教你本地部署DeepSeek-R1 1.5B:极速CPU推理,隐私安全有保障 1. 项目概述 DeepSeek-R1 1.5B是一个经过蒸馏优化的轻量级语言模型,专为本地CPU推理场景设计。相比原版模型,它保留了核心的逻辑推理能力,同时大幅降…...
Mac百度网盘SVIP破解插件终极指南:免费提升下载速度的技术方案
Mac百度网盘SVIP破解插件终极指南:免费提升下载速度的技术方案 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 对于Mac用户而言,…...
三场正交相位场统一论2.0——宇宙底层规律与星际航行的终极答案
前言:打破百年物理枷锁,回归宇宙本质逻辑从麦克斯韦完成电磁力的初步统一,到特斯拉触摸到反重力的技术边缘,从爱因斯坦构建时空弯曲的引力假说,到张祥前提出空间螺旋统一场模型,人类为破解宇宙四大力统一的…...
Qwen3-14B私有部署镜像:Android Studio移动端AI应用原型开发
Qwen3-14B私有部署镜像:Android Studio移动端AI应用原型开发 1. 移动端AI应用开发新选择 最近在开发一个需要集成大语言模型的Android应用时,发现很多开发者都在寻找既强大又容易集成的AI解决方案。Qwen3-14B作为一款性能优异的中文大模型,…...
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手 想给产品换个背景,却不会用复杂的PS?想快速处理一批图片素材,又担心在线工具泄露隐私?今天,我们就来聊聊一个…...
千问3.5-2B参数详解:max_new_tokens=192如何平衡响应长度与推理延迟?实测数据
千问3.5-2B参数详解:max_new_tokens192如何平衡响应长度与推理延迟?实测数据 1. 模型概述 千问3.5-2B是Qwen系列中的小型视觉语言模型,具备图片理解与文本生成双重能力。这个2B参数的轻量级模型特别适合需要快速响应的应用场景,…...
影墨·今颜保姆级教程:24GB显卡上跑FLUX.1-dev高清人像生成
影墨今颜保姆级教程:24GB显卡上跑FLUX.1-dev高清人像生成 1. 教程前言:从零开始掌握高端AI人像生成 你是否曾经被AI生成的人像那种"塑料感"所困扰?想要创作出具有电影质感、极致真实的时尚人像,却苦于没有合适的技术方…...
基于Spring Boot+Vue3的烹饪交流学习系统 设计与实现
基于 Spring Boot Vue3 的烹饪交流学习系统 设计与实现 一、项目概述 随着人们对烹饪学习与交流需求的增加,传统线下学习模式在菜谱管理、内容发现、交流共享与个性化推荐等方面存在明显不足。为此,本项目基于 Spring Boot Vue3 技术栈,构建…...
OpenClaw+千问3.5-9B:自动化学习笔记整理系统
OpenClaw千问3.5-9B:自动化学习笔记整理系统 1. 为什么需要自动化笔记整理 作为一个长期与技术文档打交道的开发者,我发现自己陷入了一个困境:每天阅读大量技术文章、论文和在线课程,但收集的笔记却散落在不同平台——有些在One…...
