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

SQL Server中按Policy ID分组汇总YTD Value的实现方法

问题描述

原始数据表格:

Policy IDYTD ValueBusiness Type
1120Taxes
1100Taxes
1330Taxes
2120Taxes
2130Taxes

需要转换为按Policy ID分组,对YTD Value求和后的结果:

Policy IDYTD ValueBusiness Type
1550Taxes
2250Taxes

尝试过使用DISTINCT和GROUP BY Policy ID,但因为其他字段的存在,仍会显示每条单独记录,询问如何实现正确的分组求和。

解决方案

为什么之前的方法无效?

你之前只按Policy ID分组,但SELECT语句里同时包含了Business Type这个未被聚合处理的字段,数据库无法确定该返回同组内哪一条记录的Business Type值,所以只能保留所有原始记录。

正确实现方式

场景1:同一Policy ID对应的Business Type值完全一致(如你的示例)

把所有非聚合字段都加入GROUP BY子句,同时用SUM()函数对YTD Value求和:

SELECT 
    `Policy ID`,
    SUM(`YTD Value`) AS `YTD Value`,
    `Business Type`
FROM 
    your_table_name
GROUP BY 
    `Policy ID`, `Business Type`;

场景2:同一Policy ID可能对应不同Business Type,但仅需按Policy ID分组

可以用MAX()或MIN()这类聚合函数来保留任意一个Business Type值:

SELECT 
    `Policy ID`,
    SUM(`YTD Value`) AS `YTD Value`,
    MAX(`Business Type`) AS `Business Type`
FROM 
    your_table_name
GROUP BY 
    `Policy ID`;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:14:56