Sql Server:多行合并成一行,并做分组统计的两个方法
2013-02-21 00:00
721 查看
--创建 test 表 ,插入数据 CREATE TABLE test(code varchar(50), [values] varchar(10),[count] int) INSERT test SELECT '001', 'aa',1 UNION ALL SELECT '001', 'bb',2 UNION ALL SELECT '002', 'aaa',4 UNION ALL SELECT '002', 'bbb',5 UNION ALL SELECT '002', 'ccc',3; --方法一 --将多行合并成一行,并做分组统计 SELECT code, [values] = stuff(b.[values].value('/R[1]', 'nvarchar(max)'), , , ''),[count] FROM (SELECT code,sum([count]) as [count] FROM test GROUP BY code) a CROSS apply ( SELECT [values] =( SELECT N',' + [values] FROM test WHERE code = a.code FOR XML PATH(''), ROOT('R'), TYPE ) ) b; --方法二 ---SQL2005中的新解法 使用XML SELECT code, data=STUFF((SELECT ','+[values] FROM test t WHERE code=t1.code FOR XML PATH('')), 1, 1, ''),sum([count]) as [count] FROM test t1 GROUP BY code --查询结果 --001 aa,bb 3 --002 aaa,bbb,ccc 12 drop table test
相关文章推荐
- Sql Server:多行合并成一行,并做分组统计的两个方法
- Sql Server:多行合并成一行,并做分组统计的两个方法
- Sql Server:多行合并成一行,并做分组统计的两个方法
- Sql Server:多行合并成一行,并做分组统计
- Sql Server:多行合并成一行,并做分组统计
- Oracle按时间分组统计的sql与oracle 多行合并一行
- SQL Server 2005 报以下两个错误的解决方法
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- Excel在统计分析中的应用—第二章—描述性统计-未分组数据的四分位偏差的求解方法
- MS-SQL SERVER单列合并的四种常用方法--【叶子】
- Python 合并两个字典的各种方法以及效率的比较
- 合并两个有序单链表的递归方法
- 合并两个已排序的链表(递归方法实现)
- java向图片上写字,两个图片合并的方法
- PHP中2种方法快速地合并数组,你知道吗?合并两个数组有几种方式,试比较它们的异同
- Oracle 多行合并一行 方法
- 合并两个有序链表(递归非递归方法)
- Python中实现两个字典(dict)合并的方法
- 统计一行中字符串字符的个数的三种方法:利用excel,利用perl(length函数,tr//),利用vim。统计引物中引物的碱基数目必用
- concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。