不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。
随笔 - 155, 文章 - 1, 评论 - 2, 阅读 - 10万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Q:LISTAGG()函数用法笔记(oracle)

Posted on   三年三班王小朋  阅读(168)  评论(0编辑  收藏  举报

.LISTAGG()函数作为普通函数使用时就是查询出来的结果列转为行

☆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 语句

实战演练

创建表

复制代码
CREATE TABLE employees (
employee_id INT,
employee_name VARCHAR(50),
department VARCHAR(50)
);
INSERT INTO employees(employee_id, employee_name, department)
select 1, 'John', 'HR' from dual union select 2, 'Alice', 'IT' from dual union select 3, 'Bob', 'IT' from dual union select 4, 'Mary', 'HR' from dual union select 5, 'Eva', 'Finance' from dual
复制代码

 

  •  listagg()分析函数
SELECT DEPARTMENT as 部门,
listagg(EMPLOYEE_ID,'@') within group (order by EMPLOYEE_ID) over(partition by DEPARTMENT) as 序号
from employees;

  • listagg()聚合函数
SELECT DEPARTMENT as 部门,
listagg(EMPLOYEE_ID,'@') within group (order by EMPLOYEE_ID) as 序号
from employees group by DEPARTMENT

 

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2021-09-18 局域网 yum仓库
点击右上角即可分享
微信分享提示