使用SQL的GROUP BY语句连接列值
假设您有一个包含以下数据的表:
<code>ID | 用户 | 活动 | 页面URL 1 | 我 | act1 | ab 2 | 我 | act1 | cd 3 | 你 | act2 | xy 4 | 你 | act2 | st</code>
您希望按用户和活动对数据进行分组,并将每个组中页面URL列的值组合成单个以逗号分隔的字符串。所需输出如下:
<code>用户 | 活动 | 页面URL 我 | act1 | ab, cd 你 | act2 | xy, st</code>
要使用GROUP BY查询实现此连接,您可以使用STUFF()函数以及GROUP BY子句中的子查询。以下是详细分解:
<code class="language-sql">SELECT [用户], 活动, STUFF( (SELECT DISTINCT ',' + 页面URL FROM 表名称 WHERE [用户] = a.[用户] AND 活动 = a.活动 FOR XML PATH ('')) , 1, 1, '') AS URL列表 FROM 表名称 AS a GROUP BY [用户], 活动</code>
通过执行此查询,您将获得所需的输出,其中每个唯一的用户和活动组合的页面URL值都合并在一起并以逗号分隔。
以上是如何在 SQL 中使用 GROUP BY 连接列值?的详细内容。更多信息请关注PHP中文网其他相关文章!