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

SQL GROUP BY含NULL值:MSSQL 2012R2能否仅用SQL实现指定聚合?

在MSSQL 2012 R2中按id合并数据并聚合金额的实现方法

问题描述

我在MSSQL 2012 R2的表中有以下数据:

id  data1  amount
------------------
10  abc    95.00
10  NULL   312.00
20  def    16.00
30  gqi    32.00

期望得到的查询结果是按id合并记录,对amount求和,同时保留对应id下非NULL的data1值:

id  data1  amount
------------------
10  abc    407.00
20  def    16.00
30  gqi    32.00

请问仅使用SQL是否可以实现该需求?

解决方案

当然可以实现!这是典型的分组聚合场景,我们可以通过GROUP BY结合聚合函数轻松完成需求,具体SQL语句如下:

SELECT 
    id,
    MAX(data1) AS data1,
    SUM(amount) AS amount
FROM 
    你的表名 -- 替换成实际表名
GROUP BY 
    id;

逻辑说明

  • GROUP BY id:将数据按id分组,确保同一个id的所有记录被合并处理。
  • MAX(data1):因为同一个id下只有一条记录的data1是非空值,MAX函数会自动忽略NULL,从而精准获取到该id对应的有效data1内容。
  • SUM(amount):对同一id下的所有amount值求和,得到合并后的总金额。

执行这条语句后,就能完全匹配你期望的结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:16:25