sql >> Database teknologi >  >> RDS >> PostgreSQL

Glidende gennemsnit baseret på tidsstempler i PostgreSQL

Du kan deltage i dit bord med sig selv:

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
;
 

Resultater:

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

Bemærk:Der udføres kun 'hårdt arbejde'. Du skal forbinde resultatet med den originale tabel eller tilføje nye kolonner til forespørgslen. Jeg kender ikke din endelige forespørgsel. Tilpas denne løsning, eller bed om mere hjælp.



  1. Oracle:indlæse en stor xml-fil?

  2. CURTIME() Eksempler – MySQL

  3. MySQL fejl 1241:Operand skal indeholde 1 kolonne(r)

  4. Håndtering af store datamængder med MySQL og MariaDB