create table T1(id int, num int, val int);
insert into T1 values(1, 1, 10);
insert into T1 values(1, 2, 20);
insert into T1 values(1, 3, 15);
insert into T1 values(1, 4, 3);
insert into T1 values(1, 5, 2);
insert into T1 values(1, 6, 234);
insert into T1 values(2, 1, 45);
insert into T1 values(2, 2, 56);
insert into T1 values(2, 3, 3);
insert into T1 values(3, 1, 34);
insert into T1 values(3, 2, 456);
insert into T1 values(3, 3, 67);
insert into T1 values(3, 4, 6768);
insert into T1 values(3, 5, 54);
insert into T1 values(3, 6, 23);
insert into T1 values(4, 1, 0);
insert into T1 values(4, 2, 1);
select * from T1;
with recursive r1 as (
select
id,
num,
val as val1
from T1
where num = 1
union all
select
r1.id
T1.num,
r1.val1 || ',' || T1.val
from r1
JOIN T1
on r1.id = T1.id
and r1.num = T1.num + 1;
)
select distinct on (id)
id,
val1 as F1
from r1
order by id;