Один метод использует коррелированный подзапрос:
select sum(t.value)
from t
where t.timestamp = (select max(t2.timestamp)
from t t2
where t2.category = t.category
);
При индексе (category, timestamp)
это, вероятно, самый быстрый метод. Но вы также можете использовать оконные функции:
select sum(t.value)
from (select t.*,
row_number() over (partition by category order by timestamp desc) as seqnum
from t
) t
where seqnum = 1;