Vous pouvez le faire plus simplement dans Postgres comme ceci (en utilisant des colonnes de tableau)
CREATE TEMP TABLE output AS SELECT
id, cat, ARRAY_AGG(realtime) as time, ARRAY_AGG(value) as values
FROM input GROUP BY id, cat;
Sélectionnez ensuite ce que vous voulez dans la table de sortie.