SQL 中合并多行数据
现有数据表:
id name count
001 北京 2
001 北京海淀 3
002 上海 4
003 广州 5
...
需要将id相同的行合并,count相加,name选择长度最短的,合并后的效果如下:
001 北京 5
002 上海 4
003 广州 5
...
请大家指点,谢谢!
------解决方案--------------------declare @t table(id char(3),[name] varchar(10),[count] int)
insert @t
select '001 ', '北京 ',2 union all
select '001 ', '北京海淀 ',3 union all
select '002 ', '上海 ',4 union all
select '003 ', '广州 ',5
select id,min(name) as name ,sum(count) as count
from @t
group by id
/*
(所影响的行数为 4 行)
id name count
---- ---------- -----------
001 北京 5
002 上海 4
003 广州 5
(所影响的行数为 3 行)
*/