Sql Server:多行合并成一行,并做分组统计
时间: 2024-02-15 20:41:05 浏览: 90
sql实现多行合并一行
好的,针对您的问题,您可以使用 SQL Server 中的 STUFF 函数和 XML PATH 函数来实现多行合并成一行,然后再做分组统计。具体操作可以按以下步骤进行:
1. 使用 STUFF 函数和 XML PATH 函数将多行合并成一行,例如:
SELECT
column1,
STUFF((
SELECT ',' + column2
FROM YourTable
WHERE column1 = t.column1
FOR XML PATH('')
), 1, 1, '') AS column2_concat
FROM YourTable t
GROUP BY column1
2. 在上一步的结果基础上,使用聚合函数进行分组统计,例如:
SELECT
column1,
COUNT(*) AS count,
MAX(column2_concat) AS column2_concat
FROM (
SELECT
column1,
STUFF((
SELECT ',' + column2
FROM YourTable
WHERE column1 = t.column1
FOR XML PATH('')
), 1, 1, '') AS column2_concat
FROM YourTable t
GROUP BY column1
) t
GROUP BY column1
这样就可以将多行合并成一行,并做分组统计了。注意,这里的 YourTable 是您实际使用的表。
阅读全文