Encoder: Abfrage für Datenbereinigung gesucht

Beitrag lesen

Tagchen!

Ich habe eine Aufgabe, zu der ich keine passende Lösung in SQL hin kriege. Vielleicht kann mir ja jemand auf die Sprünge helfen.

Meine Tabelle enthält ein Datum und eine zugehörige Gesamtleistung. Die Leistung nimmer immer zu, also bei größerem Datum ist auch der Wert größer.
Jetzt will ich diese Tabelle ausdünnen, d.h. Einträge entfernen bei denen sich die Leistung im Vergleich zum vorigen Wert nicht oder nur kaum geändert hat.
Ich gebe z.B. die Toleranz 2 vor. In der folgenden Tabelle soll demnach alles rausfliegen, wo sich ein Wert im Vergleich zum vorigen Wert um höchstens 2 ändert.

Datum | Wert
1 | 10
2 | 11 (raus)
3 | 12 (raus)
4 | 13 (bleibt, da zwischen 13 und der übrig gebliebenen 10 mehr als 2 ist)
5 | 17
6 | 23
7 | 25 (raus)
8 | 26
9 | 29

Man beachte: Nicht die Differenz zum absolut vorigen Wert soll zählen, sondern die zum übrig bleibenden vorigen Wert! Wenn sich also alles um nur 1 erhöht, sollen trotzdem Einträge drin bleiben.

Mir will aber kein SQL Statement einfallen, das so etwas kann. Meine Lösung besteht bisher darin, ein Programm auf die DB loszulassen, das die Einträge einliest und dann alles durchläuft und einzeln löscht.