sql - 对不包含重复项的列求和
问题描述
我对 SQL Server 中的 SUM 函数有疑问。如何对 TotalA 列求和但在 Os 列中不获取重复值?
我正在使用 Group by,独特但效率低下。
解决方案
您可以进行聚合:
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;
推荐阅读
- ios - 在 Pod 中停止本地化
- python - 我在进行情绪分析时遇到 TypeError,我该如何解决这个问题?
- c# - 引用的 SDK“SQLite.UWP.2015”不支持正在构建的项目的处理器架构“任何 CPU”。在 Visual Studio 2017 中
- javascript - 仅第一次出现替换函数
- sql-server - SQL Server 无法识别整数列中的阿拉伯数字
- html - 如何绘制英国地图?
- symfony - 使用 Symfony 运行自定义 Redis 命令
- php - 在 debian 10 上安装 pdo_mysql:未定义符号:mysqlnd_allocator
- python-3.x - pythonstring值与django orm中的字符串
- python - 在带有 JSON 的 Python 中打印 str 和 int 而不使用 "( ' ,"