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.