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()函数来使用就可以了。

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm怎么修改快捷键_vb中运行程序的快捷键是什么

    pycharm怎么修改快捷键_vb中运行程序的快捷键是什么在Pycharm中默认运行的快捷键是Ctrl+Shift+F10。如何修改Pycharm运行的快捷键?步骤一:在File中找到Settings.步骤二:找到Keymap,并在搜索框中搜索run,找到对应的【Run】.步骤三:右键点击Run,选择【AddKeyboardShortcut】.步骤四:在此处填入想设置的快捷键即可.最后点击应用和OK即可设置完毕!成功!!!…

  • rsyslogd_Syslog

    rsyslogd_Syslog最近遇到一个需求,需要把线上环境的debug日志及集中化收集起来,一方面是方便开发调试;一方面是避免直接到线上环境查看,存在安全隐患。常用可选方案:rsyslog发送端+rsyslo…

  • LAMP下HTTPS配置「建议收藏」

    LAMP下HTTPS配置「建议收藏」LAMP下HTTPS配置    LAMP下配置HTTPS非常简单,本文主要介绍ubuntu下apache配置https的具体步骤和流程,证书为服务器生成的本地证书,希望对大家有所帮助。证书:本地生成apache版本:Apache/2.4.7(Ubuntu)系统:Ubuntu14.04一、安装Apache$sudoapt-getinstallapache2使用此方式安装的APACHE,配置比…

  • RPN网络代码解读

    RPN网络代码解读1.说在前面的话在目标检测领域FasterRCNN可以说是无人不知无人不晓,它里面有一个网络结构RPN(RegionProposalNetwork)用于在特征图上产生候选预测区域。但是呢,这个网络结构具体是怎么工作的呢?网上有很多种解释,但是都是云里雾里的,还是直接撸代码来得直接,这里就直接从代码入手直接撸吧-_-||。首先,来看一下FasterRCNN中RPN的结构是什么样子的吧。…

  • Werkzeug_vuze怎么用

    Werkzeug_vuze怎么用原文链接:http://werkzeug.pocoo.org/docs/tutorial/欢迎来到Werkzeug教程,这里我们将会创建一个仿制TinyURL的应用,将URLs存储到一个redis实例。为了这个应用,我们将会使用的库包括,用于模板的Jinja2、用于数据库层的redis和用于WSGI层的Werkzeug。你可以使用pip安装需要的库:[plai

  • 标志位简介

    标志位简介标志位简介:标志寄存器,又称程序状态寄存器(它的内容是ProgramStatusWord,PSW).这是一个存放条件码标志,控制标志和系统标志的寄存器.6个状态标志位CF—进位标志,加法时的最高位(D7或D15)产生进位或减法时最高位出现借位,则CF=1,否则CF=0;AF—辅助进位标志,供BCD码使用。当D3位出现进位或借位时AF=1,否则AF=0;

发表回复

您的电子邮箱地址不会被公开。

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