如何在 SQL Server 中对具有相同 ID 的多行求和

Posted

技术标签:

【中文标题】如何在 SQL Server 中对具有相同 ID 的多行求和【英文标题】:how to sum multiple rows with same id in SQL Server 【发布时间】:2018-02-06 12:00:49 【问题描述】:

假设我有下表:

id | name | no 
--------------
1  |  A   | 10
1  |  A   | 20
1  |  A   | 40
2  |  B   | 20
2  |  B   | 20

我想在 SQL Server 中执行一个选择查询,它对具有相同 id 的“no”字段的值求和。 结果应该是这样的,

id | name | no 
--------------
1  |  A   | 70
2  |  B   | 40

【问题讨论】:

提示:GROUP BY. 我确定输入这个问题的时间比研究需要的时间长。 我们绝对不需要关于 SQL 的这样一个基本特性的另一个问题,这表明没有任何背景研究。 我投票决定将此问题作为题外话结束,因为有太多重复项,甚至都不好笑。 【参考方案1】:

简单的GROUP BYSUM 应该可以工作。

SELECT ID, NAME, SUM([NO]) 
FROM Your_TableName
GROUP BY ID, NAME;

【讨论】:

【参考方案2】:

Use SUM and GROUP BY

SELECT ID,NAME, SUM(NO) AS TOTAL_NO FROM TBL_NAME GROUP BY ID, NAME

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案3】:
SELECT *, SUM(no) AS no From TABLE_NAME GROUP BY name

这将通过汇总同一 name 列的 no 列来返回同一表。

【讨论】:

以上是关于如何在 SQL Server 中对具有相同 ID 的多行求和的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2005 中对 sql 表进行尴尬的旋转?

具有相同表数据 SQL Server 的多个联接

在一列中对具有相同数据的行进行分组,并将其相关数据汇总在另一列中 [ORACLE SQL]

SQL Server 2008 除了语句

SQL Server如何将Id相同的字段合并,并且以逗号隔开

如果它们都具有相同的 id,如何将来自 sql 查询的图像存储在不同的变量下?