PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Seleziona l'ultimo valore giornaliero non nullo con fuso orario

Prova questo:

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;

Usa DISTINCT ON per mantenere solo la prima riga per ogni combinazione di hive e giorno. Per assicurarci che la prima riga che conserviamo sia anche l'ultima, ordiniamo inoltre in ordine cronologico inverso.