Prøv denne:
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;
Den bruger DISTINCT ON
for kun at beholde den første række for hver kombination af hive
og dag. For at sikre, at den første række, vi beholder, også er den seneste, sorterer vi desuden i omvendt kronologisk rækkefølge.