首页 > 解决方案 > 对不包含重复项的列求和

问题描述

我对 SQL Server 中的 SUM 函数有疑问。如何对 TotalA 列求和但在 Os 列中不获取重复值?

我正在使用 Group by,独特但效率低下。

MSSQL 列图像

标签: sqlsql-server

解决方案


您可以进行聚合:

select os, sum(distinct totala)
from table t
group by os;

如果你想要所有的总和然后删除distinct

select os, sum(totala)
from table t
group by os;

两个查询都会产生唯一os的 s,但是,第一个将返回唯一的总和,第二个将返回所有总和。

您还可以使用子查询和聚合:

select os, sum(totala) as totala
from (select distinct os, totala  
      from table t
     ) t
group by os;

推荐阅读