Danos un ejemplo de unos cuantos valores de la tabla y de la salida que quieras que tenga tu consulta
El mar, 16 mar 2021 a las 15:40, <ocasca...@opensoftwarecr.com> escribió: > Hola Antonio y Juan, > > Les explico un poco más, yo envío desde un dispositivo el siguiente > registro: > > <timestamp> <device ID > <errorcode> > > solamente tres campos donde se registra un error perteneciente a un device > id, el timestamp es automático de postgresql. > > Entonces yo necesito un sql que me calcule el tiempo en que tardo cada > error en cambiar. Es decir, cuanto tiempo estuvo en error 1, cuanto en > error 2, etc. > > Saludos. > > Anthony Sotolongo <asotolo...@gmail.com> escribió: > > > Cierto Juan..., por algun motivo interpreté que hacia update de > > atributo Estado > > > > > > Saludos > > > > On 3/5/21 9:49 AM, Juan José Santamaría Flecha wrote: > >> > >> On Fri, Mar 5, 2021 at 4:29 AM Anthony Sotolongo > >> <asotolo...@gmail.com <mailto:asotolo...@gmail.com>> wrote: > >> > >> Hola, si en el atributo Time guardas el momento(timestamp) en que > >> cambió > >> de estado, puedes implementar un mecanismo de trigger que > >> registre, el > >> cambio de estado y el tiempo que estuvo, en otra tabla, o también > >> puedes implementar algun otro mecanismo de versionado de registros y > >> calcular la diferencia de tiempo. > >> > >> > Existe algún sql donde yo pueda ver cuanto tiempo tiene cada > >> valor? Es > >> > decir, cuanto tiempo estuvo en 0 hasta pasar a 1, cuanto a 1 hasta > >> > pasar a 0. > >> > >> > >> Juraría que la información que quieres sacar es: > >> > >> select > >> Dispositivo, > >> Time, > >> Estado, > >> coalesce(Time - lag(Time) over(partition by Dispositivo order by > >> Time), '0 day'::interval) as cambio > >> from tabla_iot; > >> > >> Un saludo, > >> > >> Juan José Santamaría Flecha > >> > >