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

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

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

2024-08-31 00:44:16
字體:
供稿:網(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ā)表
主站蜘蛛池模板: 日喀则市| 宁乡县| 弋阳县| 巴中市| 土默特左旗| 中宁县| 锡林郭勒盟| 陆丰市| 新密市| 庄河市| 高台县| 察隅县| 克拉玛依市| 调兵山市| 辉县市| 左云县| 西乌珠穆沁旗| 长宁区| 长子县| 永昌县| 肇东市| 阜新| 开化县| 张家川| 南澳县| 华宁县| 巴马| 剑阁县| 甘洛县| 宜章县| 弋阳县| 南涧| 措勤县| 通江县| 太仆寺旗| 临高县| 湾仔区| 沂水县| 开远市| 平湖市| 饶河县|