Bạn có thể làm điều này đơn giản nhất trong Postgres như vậy (sử dụng cột mảng)
CREATE TEMP TABLE output AS SELECT
id, cat, ARRAY_AGG(realtime) as time, ARRAY_AGG(value) as values
FROM input GROUP BY id, cat;
Sau đó, chọn bất kỳ thứ gì bạn muốn từ bảng đầu ra.