国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

Sql Server:多行合并成一行,并做分組統(tǒng)計(jì)的兩個(gè)方法

2020-07-25 13:08:59
字體:
供稿:網(wǎng)友
復(fù)制代碼 代碼如下:

--創(chuàng)建 test 表 ,插入數(shù)據(jù)

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;

 

--方法一
--將多行合并成一行,并做分組統(tǒng)計(jì)
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

 

--查詢結(jié)果

--001    aa,bb    3
--002    aaa,bbb,ccc    12

 

drop table test
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆云县| 开封县| 丰城市| 隆化县| 安西县| 资源县| 衡阳县| 富顺县| 中西区| 肥西县| 井冈山市| 信宜市| 大埔区| 霍林郭勒市| 彝良县| 依安县| 松阳县| 洞头县| 响水县| 保亭| 镇赉县| 中牟县| 宝清县| 闻喜县| 崇仁县| 陇西县| 台南市| 南阳市| 天镇县| 陆河县| 赫章县| 旌德县| 抚顺县| 宿松县| 马关县| 旅游| 卢氏县| 乌审旗| 承德市| 屏东县| 安多县|