1. ホーム
  2. sql

[解決済み] GROUP BYでカラムを結合/連結する [重複]。

2022-08-29 22:01:06

質問

以下のようなテーブルがあります。

ID  User  Activity  PageURL  
 1  Me    act1      ab     
 2  Me    act1      cd     
 3  You   act2      xy     
 4  You   act2      st

UserとActivityでグループ化したいので、以下のような結果になります。

User  Activity  PageURL  
Me    act1      ab, cd     
You   act2      xy, st

見ての通り、PageURLというカラムはgroup byに基づいてカンマで区切って結合されています。

何かご指摘やアドバイスがありましたら、本当に感謝いたします。

どのように解決するのですか?

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