Опитайте това:
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;
Той използва DISTINCT ON
за да запазите само първия ред за всяка комбинация от hive
и ден. За да сме сигурни, че първият ред, който запазваме, е и най-новият, ние допълнително сортираме в обратен хронологичен ред.