You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求基于分组拼接列数据并求和的T-SQL脚本

T-SQL 分组拼接Ref3并求和wt

以下针对不同版本的SQL Server提供解决方案,假设你的数据表名为YourTable,字段为[REF 1]、[REF 2]、[Ref 3]、wt(字段含空格需用方括号包裹):

方案1:SQL Server 2017及以上(推荐)

使用内置函数STRING_AGG可以简洁实现字符串拼接,分两种场景:

场景A:同一组Ref3共享固定前缀(如示例的14928-),合并后缀部分

SELECT
    [REF 1],
    [REF 2],
    -- 提取前缀并拼接所有后缀
    CONCAT(
        LEFT(MIN([Ref 3]), CHARINDEX('-', MIN([Ref 3]))),
        STRING_AGG(RIGHT([Ref 3], LEN([Ref 3]) - CHARINDEX('-', [Ref 3])), '/')
    ) AS Combined_Ref3,
    SUM(wt) AS Total_Wt
FROM YourTable
GROUP BY [REF 1], [REF 2];

场景B:直接拼接所有Ref3值

如果不需要合并前缀,直接将同一组的Ref3用/连接:

SELECT
    [REF 1],
    [REF 2],
    STRING_AGG([Ref 3], '/') AS Combined_Ref3,
    SUM(wt) AS Total_Wt
FROM YourTable
GROUP BY [REF 1], [REF 2];

方案2:SQL Server 2016及以下版本

低版本无STRING_AGG,使用STUFF + FOR XML PATH组合实现拼接:

场景A:合并前缀与后缀

SELECT
    t.[REF 1],
    t.[REF 2],
    CONCAT(
        LEFT(MIN(t.[Ref 3]), CHARINDEX('-', MIN(t.[Ref 3]))),
        STUFF(
            (
                SELECT '/' + RIGHT(s.[Ref 3], LEN(s.[Ref 3]) - CHARINDEX('-', s.[Ref 3]))
                FROM YourTable s
                WHERE s.[REF 1] = t.[REF 1] AND s.[REF 2] = t.[REF 2]
                FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)'),
            1, 1, ''
        )
    ) AS Combined_Ref3,
    SUM(t.wt) AS Total_Wt
FROM YourTable t
GROUP BY t.[REF 1], t.[REF 2];

场景B:直接拼接所有Ref3值

SELECT
    t.[REF 1],
    t.[REF 2],
    STUFF(
        (
            SELECT '/' + s.[Ref 3]
            FROM YourTable s
            WHERE s.[REF 1] = t.[REF 1] AND s.[REF 2] = t.[REF 2]
            FOR XML PATH(''), TYPE
        ).value('.', 'NVARCHAR(MAX)'),
        1, 1, ''
    ) AS Combined_Ref3,
    SUM(t.wt) AS Total_Wt
FROM YourTable t
GROUP BY t.[REF 1], t.[REF 2];

注意事项

  • 若[Ref 3]中存在特殊字符(如&、<),FOR XML PATH会自动转义,上述代码通过TYPE.value已处理该问题。
  • 确保分组字段[REF 1]和[REF 2]的数据类型一致,避免分组逻辑错误。

内容的提问来源于stack exchange,提问作者user2324065

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 12:40:23