La creación de los valores mínimo y máximo y compararlos con los valores de fecha y hora de SQL

Blake Steele:

Tengo una base de datos PostgreSQL y tengo una tabla que estoy buscando a consulta para determinar qué prensas han sido actualizados entre la primera created_timestamp ciclo y el ciclo más reciente created_timestamp. Aquí está un ejemplo de la tabla, que se llama event_log_summary.

press_id    cycle_number    created_timestamp
    1           1           2020-02-07 16:07:52
    1           2           2020-02-07 16:07:53
    1           3           2020-02-07 16:07:54
    1           4           2020-04-01 13:23:10
    2           1           2020-01-13 8:33:23
    2           2           2020-01-13 8:33:24
    2           3           2020-01-13 8:33:25
    3           1           2020-02-21 18:45:44
    3           2           2020-02-21 18:45:45
    3           3           2020-02-26 14:22:12

Esta es la consulta que he utilizado para conseguirme una salida de tres columnas de press_id, mincycle, max_cycle, pero luego me quieren comparar la created_timestamp maxcycle a la created_timestamp mincycle y ver si hay al menos x cantidad de tiempo entre los dos, digamos al menos 1 día, estoy seguro acerca de cómo poner en práctica eso.

SELECT 
    press_id,
    MIN(cycle_number) AS minCycle,
    MAX(cycle_number) AS maxCycle
FROM
    event_log_detail
GROUP BY
    press_id

He tratado de cosas diferentes como el uso DONDE (MAX (cycle_number) - MIN (cycle_number> 1), pero estoy bastante nuevo en SQL y no se sabe muy bien cómo implementar plenamente esta La salida Busco, tendría una. diferencia de al menos un día sería el siguiente:

press_id
    1
    3

Prensas 1 y 3 tienen su created_timestamp máximo ciclo de al menos diferencia 1-día de su created_timestamp de ciclo mínimo. Estoy en busca de la press_ids cuyo primer ciclo y el último ciclo tienen una diferencia de al menos 1 día, no necesito cualquier otra información sobre la salida, sólo una columna con los press_ids. Cualquier ayuda sería apreciada. Gracias.

un caballo sin nombre :

Puede utilizar una cláusula HAVING:

select press_id, 
       max(created_timestamp) - min(created_timestamp) as diff
from event_log_detail
group by press_id
having max(created_timestamp) > min(created_timestamp) + interval '1 day';

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399930&siteId=1
Recomendado
Clasificación