listagg函数替代方案_listagg within group用法

listagg函数替代方案_listagg within group用法这是一个Oracle的列转行函数:LISTAGG()注:oracle11.2才能用 先看示例代码:Sql代码 1.withtempas(  2. select’China’nation,’Guangzhou’cityfromdualunionall 3. select’China’nation,’Shanghai’cityfro

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

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

这是一个Oracle的列转行函数:LISTAGG()
注:oracle 11.2才能用

 

先看示例代码:

Sql代码 
1.with temp as(  
2.  select ‘China’ nation ,’Guangzhou’ city from dual union all 
3.  select ‘China’ nation ,’Shanghai’ city from dual union all 
4.  select ‘China’ nation ,’Beijing’ city from dual union all 
5.  select ‘USA’ nation ,’New York’ city from dual union all 
6.  select ‘USA’ nation ,’Bostom’ city from dual union all 
7.  select ‘Japan’ nation ,’Tokyo’ city from dual   
8.)  
9.select nation,listagg(city,’,’) within GROUP (order by city)  
10.from temp 
11.group by nation 
with temp as(
  select ‘China’ nation ,’Guangzhou’ city from dual union all
  select ‘China’ nation ,’Shanghai’ city from dual union all
  select ‘China’ nation ,’Beijing’ city from dual union all
  select ‘USA’ nation ,’New York’ city from dual union all
  select ‘USA’ nation ,’Bostom’ city from dual union all
  select ‘Japan’ nation ,’Tokyo’ city from dual
)
select nation,listagg(city,’,’) within GROUP (order by city)
from temp
group by nation 这是最基础的用法:

LISTAGG(XXX,XXX) WITHIN GROUP( ORDER BY XXX)

 

用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。

非常方便。

 

同样是聚合函数,还有一个高级用法:

就是over(partition by XXX)

也就是说,在你不实用Group by语句时候,也可以使用LISTAGG函数:

Sql代码 
1.with temp as(  
2.  select 500 population, ‘China’ nation ,’Guangzhou’ city from dual union all 
3.  select 1500 population, ‘China’ nation ,’Shanghai’ city from dual union all 
4.  select 500 population, ‘China’ nation ,’Beijing’ city from dual union all 
5.  select 1000 population, ‘USA’ nation ,’New York’ city from dual union all 
6.  select 500 population, ‘USA’ nation ,’Bostom’ city from dual union all 
7.  select 500 population, ‘Japan’ nation ,’Tokyo’ city from dual   
8.)  
9.select population,  
10.       nation,  
11.       city,  
12.       listagg(city,’,’) within GROUP (order by city) over (partition by nation) rank  
13.from temp 
with temp as(
  select 500 population, ‘China’ nation ,’Guangzhou’ city from dual union all
  select 1500 population, ‘China’ nation ,’Shanghai’ city from dual union all
  select 500 population, ‘China’ nation ,’Beijing’ city from dual union all
  select 1000 population, ‘USA’ nation ,’New York’ city from dual union all
  select 500 population, ‘USA’ nation ,’Bostom’ city from dual union all
  select 500 population, ‘Japan’ nation ,’Tokyo’ city from dual
)
select population,
       nation,
       city,
       listagg(city,’,’) within GROUP (order by city) over (partition by nation) rank
from temp

总结:LISTAGG()把它当作SUM()函数来使用就可以了。

 

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

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

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


相关推荐

  • macOS虚拟机安装全过程(VMware)

    macOS虚拟机安装全过程(VMware)​1.安装前的准备VMwareWorkspace16Pro要准备好,如果没有见我之前写的博客的前半部分;还有百度网盘,链接:百度网盘下载链接。2.下载macOS镜像这里提供3个版本的macOS镜像,越往下版本越新,下文以macOSBigSur11举例macOSEICaptian10.11:https://pan.baidu.com/s/1fagJkrFqq4FKA_HSB9Xhcgpwd=rvwz此系统适合配置较低的WindowsXP、Windows7老电脑..

    2022年8月16日
  • sprintf()函数的用法总结

    sprintf()函数的用法总结sprintf()函数的程序用例:#include#includeintmain(void){charbuffer[80];sprintf(buffer,”AnapproximationofPiis%f\n”,M_PI);puts(buffer);return0;}sprintf的作用是将一个格式化的字符串输出到一个

    2022年6月15日
  • -Bash: Unzip: Command Not Found解决方法 安装unzip

    -Bash: Unzip: Command Not Found解决方法 安装unzip

    2021年10月18日
  • java中ReentrantLock类的tryLock和tryLock的例子和用法

    java中ReentrantLock类的tryLock和tryLock的例子和用法ReentrantLock类的tryLock和tryLock(时间)马克-to-win:tryLock的方法就是试一下,如果能得到锁,就返回真,如果当时得不到,马上就返回假,绝不等。tryLock(时间)的用法就是在规定的时间内设法得到锁。如果在规定的时间内最终不能得到锁,就返回假。注意,这个方法是可以被打断的,打断后的处理方法和上面的例子lockInterruptibly的处理一样。…

    2022年10月8日
  • Pandas一键爬取解析代理IP与代理IP池的维护

    Pandas一键爬取解析代理IP与代理IP池的维护本文的目标是至少演示如下技术:1.pandas超简代码带请求头解析表格2.查看访问IP的方法3.搭建简易检验代理Ip的网站4.Redis数据库的基本操作5.代理ip在request库中的使用方法6.Timer定时器的使用7.Redis图形化工具的使用介绍…

    2022年10月25日
  • flowable 集成mongodb

    flowable 集成mongodb学无止境,活到老学到老,每天都问自己进步了吗?1.背景由于公司每天有至少1500个表单发起,处理待办任务至少7000个,累计历史任务数据已经达到200多w条,时间一长,通过数据库查询已办的任何和我发起的流程巨慢所以我们考虑到这些数据能不能放入ES或者是mongodb中流程中心1.0版本集成的是ES,速度确实非常快,提升查询性能近万倍,但是由于ES是一个全文检索的系统,对我们这些业务数据来说…

    2022年5月18日

发表回复

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

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