sql >> Databasteknik >  >> RDS >> PostgreSQL

Glidande medelvärde baserat på tidsstämplar i PostgreSQL

Du kan gå med i ditt bord med sig själv:

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
;

Resultat:

| ID |            AVG |
-----------------------
|  1 |           5.39 |
|  2 |          5.365 |
|  3 | 5.296666666667 |
|  4 |         5.3575 |
|  5 |          5.346 |
|  6 | 5.321666666667 |
|  7 | 5.331428571429 |

Observera:Endast "hårt arbete" görs. Du bör sammanfoga resultatet med den ursprungliga tabellen eller lägga till nya kolumner i frågan. Jag vet inte att din sista fråga behövs. Anpassa den här lösningen eller be om mer hjälp.



  1. COT() Exempel i SQL Server

  2. Hur får man bara siffror från String i mysql?

  3. Hur man ändrar kolumndatatyp från tecken till numerisk i PostgreSQL 8.4

  4. Lägg ett plus/minustecken till ett nummer i PostgreSQL