mysql - 如何计算 MySQL 表中前一行和当前行的总和?

标签 mysql select sum

我的表是“Activity_table”,有 4 列。如何创建一个函数,对每个 Peroson 2 之前和当前的事件进行求和? 我的 Activity_table

ID  PID AID Act
1   1   1   12
2   1   2   32
3   2   1   5
4   1   3   21
5   2   2   12
6   2   3   19
7   1   4   11
8   2   4   6

PID-PersonID; AID-事件ID;行动-事件值

我的目标:

ID  PID AID Act SUM
1   1   1   12  12
2   1   2   32  44
3   2   1   5   5
4   1   3   21  65
5   2   2   12  17
6   2   3   19  36
7   1   4   11  64
8   2   4   6   37

总和1=12;和2=32+12;总和3=5; Sum4=21+32+12;和5=12+5;和6=19+12+5;和7=11+21+32; Sum8=6+19+12;谢谢,

最佳答案

要使用前两行和当前行,

SELECT ID,PID,AID,Act,
    (SELECT SUM(Act) 
     FROM Activity_table 
     WHERE ID <= a.ID
     AND ID >= a.ID - 2
     AND PID = a.PID) 
FROM Activity_table a;

关于mysql - 如何计算 MySQL 表中前一行和当前行的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959353/

相关文章:

php - Foreach 不显示结果

php - 在mysql警告pdo上抛出错误

javascript - jQuery 防止更改选择

javascript - 选择下拉列表不绑定(bind)值

python - 无法添加字典中的所有值(尝试了其他方法,但没有用)

php - 计算一个类别中的所有子类别

php - 复选框、PHP 和 MySQL 性能和维护

php - 多个 where 子句 php

r - 将不同大小的命名向量合并到数据框中

c# - 计算最接近给定数字的数字之和