Eftersom det bara finns två rader mellan den nuvarande och den varifrån du vill hämta "historiska" data kan du kanske använda variabler för att lagra data tillfälligt med något som:
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;
Det är en väldigt ojämn lösning men jag tror att den kommer att göra jobbet. Kanske finns det något sätt att förhindra att variablerna visas, jag har inte undersökt det så långt.