1つの可能性は、最初にx
でグループ化することです。 array_agg()
を使用します 内部配列を取得します。次に、array_agg()
を使用して再度集計します 内側の配列を1つの外側の配列にまとめます。
SELECT array_agg(a ORDER BY x)
FROM (SELECT x,
array_agg(val ORDER BY y) a
FROM t1
GROUP BY x) t;