紧急求助:有什么简单的方法把第一个表变成第二个表的样式
相同关键词的情况下分类合并,数量取最大的关键词
关键词 分类 数量
=======================
已付款 买家 3
已付款 支付 4
发货 卖家 5关键词 分类 数量
============================
已付款 买家/支付 4
发货 卖家 5
相同关键词的情况下分类合并,数量取最大的关键词
关键词 分类 数量
=======================
已付款 买家 3
已付款 支付 4
发货 卖家 5关键词 分类 数量
============================
已付款 买家/支付 4
发货 卖家 5
if object_id('[test]') is not null drop table [test]
create table [test]([关键词] varchar(6),[分类] varchar(4),[数量] int)
insert [test]
select '已付款','买家',3 union all
select '已付款','支付',4 union all
select '发货','卖家',5
select [关键词],[分类],[数量] from(
SELECT *FROM (SELECT [关键词],SUM([数量]) as [数量] FROM [test] group by [关键词])A
OUTER APPLY(
SELECT [分类]= STUFF(REPLACE(REPLACE(
( SELECT [分类] FROM [test] N
WHERE [关键词] = A.[关键词]
FOR XML AUTO
), '<N 分类="', '/'), '"/>', ''), 1, 1, '')
)N)a
/*
关键词 分类 数量
发货 卖家 5
已付款 买家/支付 7
*/
IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')
BEGIN
DROP TABLE tba
END
GO
create table tba
([关键词] varchar(6),[分类] varchar(4),[数量] int)insert tba
select '已付款','买家',3 union all
select '已付款','支付',4 union all
select '发货','卖家',5
select B.[关键词],
stuff(( select '/'+ [分类]
from tba AS A
where A.关键词 = B.关键词 for xml path('')),1,1,'') as [分类],
MAX([数量]) AS [数量]
from tba AS B
GROUP BY B.[关键词]关键词 分类 数量
发货 卖家 5
已付款 买家/支付 4