SQL 将属于同一个ID下的多行数据合并到一行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 将属于同一个ID下的多行数据合并到一行相关的知识,希望对你有一定的参考价值。
现在有一个表(表1),我希望能通过写SQL语句,实现表2操作,请问这个SQL语句应该怎么写呢?
参考技术A mssql下create Table #myfal (ID int,data1 varchar(20),data2 varchar(20))
insert into #myfal values (1,1,'')
insert into #myfal values (1,1.1,'')
insert into #myfal values (1,'',0.3)
insert into #myfal values (2,1,'')
insert into #myfal values (2,'',1.2)
select * from #myfal
select ID,SUM(case when data1 = '' then 0 else Convert(float,data1) end) data1 ,
SUM(case when data2 = '' then 0 else Convert(float,data2) end) data2 from #myfal
group by id
drop table #myfal 参考技术B select id,sum(isnull(data1,0)) data1,sum(isnull(data2,0)) data2 from 表1 group by id
sqlserver写法,其他数据库略有不同
SQL 多行多列数据清洗合并为一行
参考技术A SELECTA,
GROUP_CONCAT( B SEPARATOR ',' ),
GROUP_CONCAT( C SEPARATOR ',' )
FROM
table_name
GROUP BY
A
1.GROUP_CONCAT()中的值为你要合并的数据的字段名;
2.SEPARATOR 函数是用来分隔这些要合并的数据的 ,' ' 中是你要用哪个符号来分隔,可以直接不填符号默认为空值;
2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录
参考链接
https://www.cnblogs.com/shoshana-kong/p/11147690.html
以上是关于SQL 将属于同一个ID下的多行数据合并到一行的主要内容,如果未能解决你的问题,请参考以下文章