PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Sélectionnez la dernière valeur quotidienne non nulle avec le fuseau horaire

Essayez celui-ci :

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;

Il utilise DISTINCT ON pour ne garder que la première ligne pour chaque combinaison de hive et jour. Pour nous assurer que la première ligne que nous conservons est également la plus récente, nous trions en outre dans l'ordre chronologique inverse.