U kunt met zichzelf aan tafel gaan zitten:
select l1.id, avg( l2.Temperature )
from l l1
inner join l l2
on l2.id <= l1.id and
l2.Timestamps + interval '15 minutes' > l1.Timestamps
group by l1.id
order by id
;
Resultaten:
| ID | AVG |
-----------------------
| 1 | 5.39 |
| 2 | 5.365 |
| 3 | 5.296666666667 |
| 4 | 5.3575 |
| 5 | 5.346 |
| 6 | 5.321666666667 |
| 7 | 5.331428571429 |
Let op:Er wordt alleen 'hard gewerkt'. U moet het resultaat samenvoegen met de originele tabel of nieuwe kolommen toevoegen aan de query. Ik weet niet wat uw laatste vraag is. Pas deze oplossing aan of vraag om meer hulp.