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

 更新时间:2013年02月21日 09:59:24   作者:  
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

相关文章

  • SqlServer2012中LEAD函数简单分析

    SqlServer2012中LEAD函数简单分析

    SQL SERVER 2012 T-SQL新增几个聚合函数: FIRST_VALUE LAST_VALUE LEAD LAG,今天我们首先来简单分析下LEAD,希望对大家有所帮助,能够尽快熟悉这个聚合函数
    2014-08-08
  • 一个常用的报表统计SQL语句

    一个常用的报表统计SQL语句

    在平常的系统开发中,我们经常会遇到类似下图的报表统计功能需求。
    2010-12-12
  • SQL server数据库log日志过大占用内存大的解决办法

    SQL server数据库log日志过大占用内存大的解决办法

    SQL Server日志文件过大,随着时间的推移会占用很大的存储空间,下面这篇文章主要给大家介绍了关于SQL server数据库log日志过大占用内存大的解决办法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • SQLServer导出数据到MySQL实例介绍

    SQLServer导出数据到MySQL实例介绍

    本文为大家详细介绍下从SQLServer导出数据并将数据导入到MySQL,具体的实现如下,感兴趣的朋友可以参考下哈
    2013-07-07
  • SQL Server提示"选定的用户拥有对象,所以无法除去该用户”

    SQL Server提示"选定的用户拥有对象,所以无法除去该用户”

    今天在帮朋友弄一台服务器的时候当我需要删除一个数据库里的用户时,提示如下错误信息: "选定的用户拥有对象,所以无法除去该用户" 如何解决呢?
    2009-04-04
  • SqlServer 2022通过临时表和游标遍历方式逻辑处理获取目标数据

    SqlServer 2022通过临时表和游标遍历方式逻辑处理获取目标数据

    在SQL的存储过程,函数中,经常需要使用遍历(遍历table),其中游标、临时表等遍历方法很常用,本文就来介绍一下SqlServer 2022通过临时表和游标遍历方式逻辑处理获取目标数据,感兴趣的可以了解一下
    2024-04-04
  • 数据结构简明备忘录 线性表

    数据结构简明备忘录 线性表

    线性表是线性结构的抽象,线性结构的特点是结构中的数据元素之间存在一对一的线性关系。
    2010-03-03
  • sql server服务无法启动的解决方案

    sql server服务无法启动的解决方案

    sql server软件是一款关系型数据库管理系统,具有使用方便可伸缩性好与相关软件集成程度高等优点,我们在数据编程操作时经常会使用这款编程软件,在编程时系统有时会提示sql server服务无法启动,那么大家该如何正常启动呢,下面就由小编来给大家介绍一下如何解决
    2023-11-11
  • 开窗函数有浅入深详解(一)

    开窗函数有浅入深详解(一)

    本篇文章主要给大家介绍开窗函数,本文有浅入深详解开窗函数,有需要的朋友可以参考下
    2015-08-08
  • SQLserver日志优化的几种方法

    SQLserver日志优化的几种方法

    要控制SQL Server数据库中日志的增长,可以通过查看日志内容、调整日志记录级别和优化配置等方法,使用简单恢复模式可自动截断日志,定期备份事务日志有助于控制大小,优化长事务以减少日志增长,合理管理日志不仅节省空间,还能提升数据库性能,感兴趣的可以了解一下
    2024-10-10

最新评论