Uma possibilidade é primeiro agrupar por
x
e use array_agg()
para obter as matrizes internas. Em seguida, agregue novamente usando array_agg()
para obter as matrizes internas em uma matriz externa. SELECT array_agg(a ORDER BY x)
FROM (SELECT x,
array_agg(val ORDER BY y) a
FROM t1
GROUP BY x) t;