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