Je zou dit het eenvoudigst kunnen doen in Postgres, zoals zo (met behulp van matrixkolommen)
CREATE TEMP TABLE output AS SELECT
id, cat, ARRAY_AGG(realtime) as time, ARRAY_AGG(value) as values
FROM input GROUP BY id, cat;
Selecteer vervolgens wat u maar wilt uit de uitvoertabel.