Re: Tiempo entre cambio de valores

From: ocascante(at)opensoftwarecr(dot)com
To: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)lists(dot)postgresql(dot)org>
Subject: Re: Tiempo entre cambio de valores
Date: 2021-03-20 14:53:13
Message-ID: 20210320075313.Horde.Tf3wMTBWRHABnuXRCI72UAi@www.opensoftwarecr.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Guillermo, este es un ejemplo de los registros sobre los que
debo ejecutar el query:

Timestamp - Codigo de error - Device ID

2021-03-04 16:29:15.538263-06 | 10000 | 1d993kld00dl303
2021-03-04 16:29:27.770273-06 | 20000 | 1d993kld00dl303
2021-03-04 16:30:27.690168-06 | 10050 | 1d993kld00dl303
2021-03-04 16:31:31.729803-06 | 10000 | 1d993kld00dl303
2021-03-04 16:35:31.729803-06 | 20000 | 1d993kld00dl303

Sobre estos datos, necesito sabe cuanto tiempo estuvo activo cada
error, viendo estos datos sería:

Error 10000 tiempo 12 segundos
Error 20000 tiempo 1 minutos
Error 10050 tiempo 1 minuto y 4 segundos
Error 10000 tiempo 4 minutos
Error 20000 tiempo: este debería calcularse en base a el tiempo en que
se ejecuta la consulta ya que no existe un nuevo registro en base al
cual calcularlo.

Saludos

"Guillermo E. Villanueva" <guillermovil(at)gmail(dot)com> escribió:

> 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, <ocascante(at)opensoftwarecr(dot)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 <asotolongo(at)gmail(dot)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
>>>> <asotolongo(at)gmail(dot)com <mailto:asotolongo(at)gmail(dot)com>>[1] 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
>>>> _
>>  

Vínculos:
---------
[1] mailto:asotolongo(at)gmail(dot)com%3E%3E

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message cDaniel GE 2021-03-20 23:13:21 Re: INSERT PHP 7
Previous Message listas 2021-03-18 11:19:51 Re: Tiempo entre cambio de valores