首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL -将列中的值与另一列的值相加,而不分组

SQL -将列中的值与另一列的值相加,而不分组
EN

Stack Overflow用户
提问于 2020-04-23 02:15:33
回答 2查看 42关注 0票数 0

我有一个数据集,如下所示:

代码语言:javascript
复制
Location   Name    Amount
1          Bob     5        
1          Phil    1        
1          Bob     2        
West       Phil    2        
West       Phil    3        

我想要一个列,将在位置和名称,并合计所有的数据,有相同的价值没有分组的数量。位置和名称都可以有很大的不同。它看起来像这样:

代码语言:javascript
复制
Location   Name    Amount   Total
1          Bob     5        7
1          Phil    1        1
1          Bob     2        7
West       Phil    2        5
West       Phil    3        5

我不知道在这里该做些什么。如果这是在Excel中,使用SUMIFS会非常简单!感谢所有的帮助!

EN

回答 2

Stack Overflow用户

发布于 2020-04-23 02:26:14

您可以使用标量子查询来获得该总和。

例如:

代码语言:javascript
复制
select *,
  (select sum(Amount) from my_table a 
   where a.Location = t.Location and a.Name = t.Name) as Total
from my_table t
票数 0
EN

Stack Overflow用户

发布于 2020-04-23 02:28:42

如果您的MySql版本支持窗口函数,则可以在没有分组的情况下进行分组:

代码语言:javascript
复制
select *, sum(amount) over (partition by location, name) total
from tablename

在没有窗口函数的情况下,可以用子查询返回总数:

代码语言:javascript
复制
select t.*, (select sum(amount) from tablename where location = t.location and name = t.name)) total
from tablename t
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61372242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档