我正在尝试创建一个查询,根据另一列的运行最大值更新正在运行的最大列,例如在这种情况下得分。
查询前的表格
time-----score---------current max
1-----------5--------------null
2-----------6--------------null
3-----------3--------------null
4-----------4--------------null
5-----------5--------------null
6-----------7--------------null
7-----------8--------------null
查询后的表
time-----score---------current max
1-----------5--------------5
2-----------6--------------6
3-----------3--------------6
4-----------4--------------6
5-----------5--------------6
6-----------7--------------7
7-----------8--------------8
我们非常感谢任何建议。
答案 0 :(得分:0)
select @max := case when score > @max
then score
else @max
end as curr_max,
time,
score
from your_table, (select @max := 0) m
答案 1 :(得分:0)
试试这个:
UPDATE tableA A
INNER JOIN (SELECT A.time, (@temp:=IF(score > @temp, score, @temp)) currentMax
FROM tableA A, (SELECT @temp:=0) B
) B ON A.time = B.time
SET A.currentMax = B.currentMax