GROUP BY to combine/concat a column [duplicate] GROUP BY to combine/concat a column [duplicate] sql-server sql-server

GROUP BY to combine/concat a column [duplicate]


SELECT     [User], Activity,     STUFF(         (SELECT DISTINCT ',' + PageURL          FROM TableName          WHERE [User] = a.[User] AND Activity = a.Activity          FOR XML PATH (''))          , 1, 1, '')  AS URLListFROM TableName AS aGROUP BY [User], Activity


A good question. Should tell you it took some time to crack this one. Here is my result.

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