为了账号安全,请及时绑定邮箱和手机立即绑定

GROUP BY结合/连接一列

GROUP BY结合/连接一列

凤凰求蛊 2019-08-31 14:59:54
我有一张桌子如下:ID  User  Activity  PageURL   1  Me    act1      ab      2  Me    act1      cd      3  You   act2      xy      4  You   act2      st我希望按用户和活动进行分组,这样我最终得到的结果如下:User  Activity  PageURL  Me    act1      ab, cd     You   act2      xy, st如您所见,列PageURL由基于group by的逗号分隔在一起。真的很感激任何指针和建议。
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

SELECT

     [User], Activity,

     STUFF(

         (SELECT DISTINCT ',' + PageURL

          FROM TableName

          WHERE [User] = a.[User] AND Activity = a.Activity

          FOR XML PATH (''))

          , 1, 1, '')  AS URLList

FROM TableName AS a

GROUP BY [User], Activity


查看完整回答
反对 回复 2019-08-31
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

一个好问题。应该告诉你,花了一些时间来破解这个。这是我的结果。


DECLARE @TABLE TABLE

(  

ID INT,  

USERS VARCHAR(10),  

ACTIVITY VARCHAR(10),  

PAGEURL VARCHAR(10)  

)


INSERT INTO @TABLE  

VALUES  (1, 'Me', 'act1', 'ab'),

        (2, 'Me', 'act1', 'cd'),

        (3, 'You', 'act2', 'xy'),

        (4, 'You', 'act2', 'st')



SELECT T1.USERS, T1.ACTIVITY,   

        STUFF(  

        (  

        SELECT ',' + T2.PAGEURL  

        FROM @TABLE T2  

        WHERE T1.USERS = T2.USERS  

        FOR XML PATH ('')  

        ),1,1,'')  

FROM @TABLE T1  

GROUP BY T1.USERS, T1.ACTIVITY


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 551 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信