sql >> Base de Datos >  >> RDS >> PostgreSQL

Extraer y promediar valores instantáneos en DB temporal en postgresql

select
    extract(hour from t1.dt) as hour,
    t1.dt as t1, t0.dt as t0,
    round(((t0.ambtemp + t1.ambtemp) / 2)::numeric, 2) as average
from
    n25 t0
    inner join
    n25 t1 on
        date_trunc('minute', t0.dt + interval '1 hour - 2 minutes')
        = date_trunc('minute', t1.dt)
where extract(minute from t1.dt) = 41
order by t1.dt

SQL Fiddle