PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Selecione o último valor diário não nulo com fuso horário


Tente este:
SELECT
    DISTINCT ON (hive, moment)
    *, DATE_TRUNC('day', instant AT TIME ZONE 'pst') AS moment
FROM dt_weight
ORDER BY hive, moment DESC, instant DESC;

Ele usa DISTINCT ON para manter apenas a primeira linha para cada combinação de hive e dia. Para garantir que a primeira linha que mantemos seja também a mais recente, também classificamos em ordem cronológica inversa.