• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Sql Server:多行合并成一行,并做分组统计的两个方法
    复制代码 代码如下:

    --创建 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语句(稍微整理了一下)
    上一篇:将备份的SQLServer数据库转换为SQLite数据库操作方法
    下一篇:SQL里面用自定义Split()完成个性化需求
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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