主页 > 知识库 > Sql Server:多行合并成一行,并做分组统计的两个方法

Sql Server:多行合并成一行,并做分组统计的两个方法

热门标签:地方门户网站 呼叫中心市场需求 AI电销 百度竞价排名 网站排名优化 服务外包 Linux服务器 铁路电话系统
复制代码 代码如下:

--创建 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分组后二次汇总(处理表重复记录查询和删除)的实现方法
  • SQL SERVER 分组求和sql语句
  • 显示同一分组中的其他元素的sql语句
  • sql获取分组排序后数据的脚本
  • SQL进行排序、分组、统计的10个新技巧分享
  • SQL分组排序去重复的小实例
  • 以数据库字段分组显示数据的sql语句(详细介绍)
  • SQL中Group分组获取Top N方法实现可首选row_number
  • Sql Server 分组统计并合计总数及WITH ROLLUP应用
  • SQL语句分组获取记录的第一条数据的方法
  • sqlserver巧用row_number和partition by分组取top数据
  • 一句Sql把纵向表转为横向表,并分别分组求平均和总平均值
  • sql 分组查询问题
  • SQLserver 实现分组统计查询(按月、小时分组)
  • 分组后分组合计以及总计SQL语句(稍微整理了一下)

标签:崇左 黄山 湘潭 衡水 仙桃 兰州 铜川 湖南

巨人网络通讯声明:本文标题《Sql Server:多行合并成一行,并做分组统计的两个方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266