PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wählen Sie den letzten täglichen Nicht-Null-Wert mit Zeitzone aus

Versuchen Sie Folgendes:

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;

Es verwendet DISTINCT ON um nur die erste Zeile für jede Kombination von hive zu behalten und Tag. Um sicherzustellen, dass die erste Zeile, die wir behalten, auch die neueste ist, sortieren wir zusätzlich in umgekehrter chronologischer Reihenfolge.