首页 > 数据库 >Oracle函数之LISTAGG用法

Oracle函数之LISTAGG用法

时间:2024-09-11 08:52:05浏览次数:8  
标签:BLAKE LISTAGG JAMES 用法 MARTIN Oracle ALLEN TURNER WARD

官方文档的解释如下:

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的用法如下:

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

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

SQL> select listagg(ename,',')within group(order by sal)name from emp;

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

分组函数:

SQL> select deptno,listagg(ename,',')within group(order by sal)name from emp group by deptno;

    DEPTNO NAME
---------- ----------------------------------------------------------------------------------------------------
    10 MILLER,CLARK,KING
    20 SMITH,ADAMS,JONES,FORD,SCOTT
    30 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE

分析函数:

SQL> select deptno,ename,sal,listagg(ename,',')within group(order by sal)over(partition by deptno)name from emp;

    DEPTNO ENAME             SAL NAME
---------- ---------- ---------- ----------------------------------------
        10 MILLER           1300 MILLER,CLARK,KING
        10 CLARK            2450 MILLER,CLARK,KING
        10 KING             5000 MILLER,CLARK,KING
        20 SMITH             800 SMITH,ADAMS,JONES,SCOTT,FORD
        20 ADAMS            1100 SMITH,ADAMS,JONES,SCOTT,FORD
        20 JONES            2975 SMITH,ADAMS,JONES,SCOTT,FORD
        20 SCOTT            3000 SMITH,ADAMS,JONES,SCOTT,FORD
        20 FORD             3000 SMITH,ADAMS,JONES,SCOTT,FORD
        30 JAMES             950 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE
        30 MARTIN           1250 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE
        30 WARD             1250 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE
        30 TURNER           1500 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE
        30 ALLEN            1600 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE
        30 BLAKE            2850 JAMES,MARTIN,WARD,TURNER,ALLEN,BLAKE

14 rows selected.

 

标签:BLAKE,LISTAGG,JAMES,用法,MARTIN,Oracle,ALLEN,TURNER,WARD
From: https://www.cnblogs.com/gdjgs/p/18407613

相关文章

  • Oracle 中 TO_CHAR用法
    (1)用作日期转换:to_char(date,'格式');selectto_date('2005-01-01','yyyy-MM-dd')fromdual;selectto_char(sysdate,'yyyy-MM-ddHH24:mi:ss')fromdual;(2)处理数字:to_char(number,'格式');selectto_char(88877)from......
  • 《深度学习》OpenCV 高阶 图像金字塔 用法解析及案例实现
    目录一、图像金字塔1、什么是图像金字塔2、图像金字塔作用    1)金字塔尺度间的图像信息补充    2)目标检测与识别    3)图像融合与拼接    4)图像增强与去噪    5)图像压缩与编码二、用法解析1、向下采样        1)概念......
  • oracle配置SGA参数不当导致不能正确启动数据库实例处理
    原因:生成环境数据库想要增加数据库内存配置参数SGA_TARGET增加到42G,但是没有配置SGA_MAX_SIZE参数值,导致SHUTDOWNIMMEDIATE停止数据库,再STARTUP启动数据库是提示错误:ORA-00823:Specifiedvalueofsga_targetgreaterthansga_max_size。处理思路:根据现有的spfile生成非二进制......
  • Oracle 19c OCP 认证考试 082 题库(第18题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q18题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com.cn/ocp/082kaoshitiku/38219540954.html第18题:Q1......
  • PARTIII-Oracle事物管理-数据并发性和一致性
    9.数据并发性和一致性本章解释了Oracle数据库如何在多用户数据库环境中维护一致性的数据。本章包含以下部分:数据并发性和一致性的介绍Oracle数据库事务隔离级别的概述Oracle数据库锁定机制的概述自动锁定的概述手动数据锁定的概述用户定义锁的概述9.1.数据并发性和一......
  • 最新扣子(Coze)实战案例:Coze触发器的用法,做一个运动提醒Bot,完全免费教程
    大家好,我是斜杠君。我的教程《AI应用开发系列教程之扣子(Coze)实战教程》正在免费开放中,如果想学习AI应用搭建,请关注公众号,获取免费教程。​最近有同学问,扣子(Coze)中的触发器如何使用。今天就和大家说说扣子平台触发器的使用方法。什么是触发器Coze平台的触发器功能允许你的B......
  • 一个类才几百行/搞定各种自定义委托/涵盖各种场景需求/所有委托一网打尽/用法极其简单
    一、应用场景某个字段需要提供下拉框进行选择,下拉框可选是否允许编辑。某个字段需要提供密码框进行输入,密文显示字段值。某个字段需要提供日期框下拉选择日期时间。某个字段需要提供微调框设定值。某个字段需要提供进度条显示字段值。某个字段列需要禁用。各种委托控件可......
  • MySQL timestamp和datetime用法详解
    一、MySQL中如何表示当前时间?其实,表达方式还是蛮多的,汇总如下:CURRENT_TIMESTAMPCURRENT_TIMESTAMP()NOW()LOCALTIMELOCALTIME()LOCALTIMESTAMPLOCALTIMESTAMP() 二、关于TIMESTAMP和DATETIME的比较一个完整的日期格式如下:YYYY-MM-DDHH:MM:SS[.fraction],它可分为两部......
  • Oracle rownum用法
    ownum是oracle特有的一个关键字。对于基表,在insert记录时,oracle就按照insert的顺序,将rownum分配给每一行记录,因此在select一个基表的时候,rownum的排序是根据insert记录的顺序显示的。例如:selectrownumrn,t.*fromempt;对于子查询,则rownum的顺序是根据子查询的查询顺序进行......
  • 高级DBA培训02:国产麒麟操作系统+Oracle11gR2安装配置
    一、高级DBA培训02:国产麒麟操作系统+Oracle11gR2安装配置:本课程大纲内容如下:(*)国产麒麟-Oracle11gR2课程环境规划(*)国产麒麟Linux操作系统安装(*)国产麒麟安装Oracle11gR2的操作系统参数配置(*)国产麒麟静默安装Oracle11gR2过程(*)国产麒麟静默配置Oracle11g监听服务(*)国产麒麟静默创建Orac......