Тъй като има само два реда между текущия и този, откъдето искате да получите „историческите“ данни, бихте ли могли да използвате променливи, за да съхранявате данните временно, като използвате нещо като:
set @oldid0=999999;
set @oldid1=999999;
set @oldid2=999999;
select @oldid0:[email protected],@oldid1:[email protected],@oldid2:=id, value/@oldid0 from table order by id asc;
Това е много неподредено решение, но мисля, че ще свърши работа. Може би има някакъв начин да се предотврати показването на променливите, не съм го разглеждал толкова далеч.