我有一个看起来像这样的数据集:
Location Name Amount
1 Bob 5
1 Phil 1
1 Bob 2
West Phil 2
West Phil 3
我想要一列,它将查看“位置”和“名称”,并对“金额”中具有相同值的所有数据求和,而不进行分组。位置和名称可能完全不同。看起来像这样:
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,将非常容易!感谢所有帮助!
答案 0 :(得分:0)
您可以使用标量子查询来获取总和。
例如:
select *,
(select sum(Amount) from my_table a
where a.Location = t.Location and a.Name = t.Name) as Total
from my_table t
答案 1 :(得分:0)
如果MySql版本支持窗口功能,则无需分组即可
select *, sum(amount) over (partition by location, name) total
from tablename
没有窗口函数,您可以使用返回总数的子查询来实现:
select t.*, (select sum(amount) from tablename where location = t.location and name = t.name)) total
from tablename t