分组合并汇总统计 |【Oracle】listagg within group,【MySQL】group_concat

 按照某字段进行分组,并把其中一列的值合并显示在一个字段中。

一、Oracle表述 | Listagg Within Group

1、建表 \ 插入数据

create table DEMO
(
  id   NUMBER,
  name VARCHAR2(20),
  nums NUMBER
);
insert into demo values(1, '苹果', 1000);
insert into demo values(1, '鸭梨', 2000);
insert into demo values(1, '香蕉', 4000);
insert into demo values(2, '橘子', 5000);
insert into demo values(3, '西瓜', 3000);
insert into demo values(4, '葡萄', 3500);
insert into demo values(5, '芒果', 4200);
insert into demo values(5, '哈密', 5500);

2 查询sql

SELECT ID, listagg(NAME, ',') within group(ORDER BY ID) AS NAMES
  FROM DEMO T 
 GROUP BY ID;

将NAME之间以 逗号 连接 , 并且按照ID分类

 

2、MySQL表述 | Group_Concat

以上是Oracle语法,MySQL语法如下,效果跟上方Oracle效果一样。 

---MySQL效果(默认分隔符为",")
SELECT ineid, group_concat(VCNENAME) 
 FROM tneinfo T 
 GROUP BY ineid;

---MySQL效果,可以自定义分隔符
SELECT ineid, group_concat(VCNENAME,'|') 
 FROM tneinfo T 
 GROUP BY ineid;

 

posted @ 2018-11-23 11:28  航松先生  阅读(1346)  评论(0)    收藏  举报