[转]Oracle 分组聚合二种写法,listagg和wmsys.wm_concat

本文转自:http://www.cnblogs.com/ycdx2001/p/3502495.html

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

select goodsid,listagg(ss.StorageNo,‘,‘)  within group (order by ss.StorageNo) StorageNo
      from StorageGoods ssg
      left join storage ss on ssg.storageid=ss.guid
      group by goodsid
select goodsid,wmsys.wm_concat(ss.StorageNo) StorageNo
      from StorageGoods ssg
      left join storage ss on ssg.storageid=ss.guid
      --where ssg.goodsid=sd.goodsid
      group by goodsid

oracle合并列的函数wm_concat的使用详解

http://www.jb51.net/article/37604.htm

oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。
shopping:
-----------------------------------------
u_id       goods            num
------------------------------------------
1                苹果                2
2                 梨子               5
1                 西瓜               4
3                 葡萄               1
3                香蕉                1
1               橘子                 3
=======================
想要的结果为:
--------------------------------
u_id          goods_sum
____________________
1              苹果,西瓜,橘子
2              梨子
3              葡萄,香蕉
---------------------------------
1.select u_id, wmsys.wm_concat(goods) goods_sum  2. 3.from shopping  4. 5.group by u_id 
想要的结果2:
--------------------------------
u_id          goods_sum
____________________
1              苹果(2斤),西瓜(4斤),橘子(3斤)
2              梨子(5斤)
3              葡萄(1斤),香蕉(1斤)
---------------------------------
使用oracle wm_concat(column)函数实现:
select u_id, wmsys.wm_concat(goods || ‘(‘ || num || ‘斤)‘ ) goods_sum 
from shopping  
group by u_id 
mysql---group_concat

时间: 2024-11-05 15:51:47

[转]Oracle 分组聚合二种写法,listagg和wmsys.wm_concat的相关文章

Oracle数据库sql 列转字符串行函数WMSYS.WM_CONCAT()

例.select TO_CHAR(WMSYS.WM_CONCAT(ID)) from patrol_data_content  where patrol_unit_id = '1628D189543B441C998EA1F396E611BD'

oracle 优化or 替换为in、exists、union all的几种写法,测试没有问题!

oracle 优化or 替换为in.exists.union的几种写法,测试没有问题! 根据实际情况用选择相应的语句吧!如果有索引,or全表扫描,in 和not in 也要慎用,否则会导致全表扫描,  select *    from T_Pro_Product   where bar_code = 'nnnmmm'      or name = 'nnnmmm'      or no = 'nnnmmm'; select * from T_Pro_Product where 'nnnmmm'

ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法

ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT is SELECT ID,UNAME from g_users where utype=2 and STATUS>-1; begin for c in TABLE_DEPT loop INSERT INTO G_KNOWDOCRIGHT(RID,DIRID,DOCID,USERID) VALUES(SYS

Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)

   写在开篇~    不知不觉已然到了开学的时候,毕竟这个大三连暑假还不知道是什么就上岗了,看着周围同学秀的简直飞起 =.= 扯淡扯多了,再扯一句..大三的时候学的 Oracle ,但是现在一想竟然不觉得有何内容,而且触发器,存储过程老师也没有教过,自己也没有看过,实在...毕竟华为工程师说的那句话还是依稀在眼前..不管怎么样,先搞明白是何物,以后才在项目中知道该如何去使用.本流程基本按学习过程中 PPT 来走的,而再往前的东西概念太多,大家又不是很喜欢字,都爱看图嘛~视频就算了,太刺激了都受

PowerShell-自定义函数(二) Function的另一种写法

上一篇我们讲了一个最简单的Fuction的实现方法,了解了Function最简单快捷的一种编写方式. 这种编写方式在实现简单功能时非常简洁高效,但是碰上更复杂的需求,这种写法即不直观,也不利于代码整洁. 下面我们来看看Function的另一种写法. 目标(同上篇): 输入姓名和年龄后,直接在显示 某某 今年 多少 岁 . 示例: Function Test-Function {         Param         (         $Name,         $Age = "18&q

Oracle数据基础(二)

一. SQL基础查询 基本查询语句   1. FROM子句 SELECT * FROM TABLE;  2. 使用别名     3. WHERE子句 WHERE子句中使用比较操作符限制查询结果     4. SELECT子句 查询条件     1. 使用>,<,>=,<=,!=,<>,= 数据库中标准的不等于:<>    2. 使用AND,OR关键字 SELECT * FROM table WHERE sal > 1000 AND job = 'cle

Oracle学习(二)_多表操作

--第一部分:SQL基础 --ch1 简单查询 --ch2 查询基本概念 --ch3 数据过滤 --第二部分:多表操作 --ch4 集合理论 --ch5 内连接 --ch6 外连接 --ch7 子查询 --第三部分:数据分组 --ch8 简单统计 --ch9 数据分组 --ch10 分组数据过滤 --第四部分:SQL函数 --ch11 内置函数 --ch12 case表达式 --第五部分:DML语句 --ch13 插入数据 --ch14 修改数据 --ch15 删除数据 ------------

Android点击事件的四种写法

Android点击事件的四种写法 一.Android点击事件的四种写法 1.点击事件的第一种写法 .  写一个内部类.实现点击事件的接口 bt.setOnClickListener(new MyButtonListener()); 2.点击事件的第二种写法,匿名内部类 bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { callPhone(); } }); 3.点击事件的第三种

Atitit &#160;数据存储的分组聚合 groupby的实现attilax总结

Atitit  数据存储的分组聚合 groupby的实现attilax总结 1. 聚合操作1 1.1. a.标量聚合 流聚合1 1.2. b.哈希聚合2 1.3. 所有的最优计划的选择都是基于现有统计信息来评估3 1.4. 参考资料3 1. 聚合操作 聚合也是我们在写T-SQL语句的时候经常遇到的,我们来分析一下一些常用的聚合操作运算符的特性和可优化项. 1.1. a.标量聚合 流聚合 标量聚合是一种常用的数据聚合方式,比如我们写的语句中利用的以下聚合函数:MAX().MIN().AVG().C