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

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

热门标签:电销外呼系统软件功能 浙江稳定外呼系统供应商 北京400电话办理多少钱 承德地图标注公司名需要花钱吗 庆阳地图标注 怎么给高德做地图标注 咸阳电脑外呼系统运营商 美团地图标注商户认证注册 榕城市地图标注
复制代码 代码如下:

--创建 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:多行合并成一行,并做分组统计的两个方法》,本文关键词  Sql,Server,多行,合并,成,一行,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Sql Server:多行合并成一行,并做分组统计的两个方法》相关的同类信息!
  • 本页收集关于Sql Server:多行合并成一行,并做分组统计的两个方法的相关信息资讯供网民参考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推荐文章