viv*_*ous 93 sql sql-server group-by sql-server-2008
我有一张桌子如下:
ID User Activity PageURL
1 Me act1 ab
2 Me act1 cd
3 You act2 xy
4 You act2 st
Run Code Online (Sandbox Code Playgroud)
我希望按用户和活动进行分组,这样我最终得到的结果如下:
User Activity PageURL
Me act1 ab, cd
You act2 xy, st
Run Code Online (Sandbox Code Playgroud)
如您所见,列PageURL由基于group by的逗号分隔在一起.
真的很感激任何指针和建议.
Joh*_*Woo 164
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
Run Code Online (Sandbox Code Playgroud)
一个好问题.应该告诉你,花了一些时间来破解这个.这是我的结果.
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179060 次 |
| 最近记录: |