配列を使った少し複雑なグルーピング方法について
PostgreSQLで不完全リスト情報に基づく完全リスト作成をしたいのですが、良い方法はないでしょうか。
次のテーブルがあります。
CREATE TABLE abscissa (
a_id TEXT
o_id_list TEXT[]
);
CREATE TABLE ordinate (
o_id TEXT
a_id_list TEXT[]
);
a_id_list, o_id_list は それぞれ a_id, o_id の不完全リストとなっています。
これをもとに、完全リストを作りたいのです。
具体例でいうと、次のようなデータがあるとします。
a_1 | {o_1, o_2, o_4}
a_2 | {o_1, o_3, o_5}
a_3 | {o_3, o_5}
o_1 | {a_1, a_2}
o_2 | {a_1}
o_3 | {a_2, a_3}
o_4 | {a_1}
o_5 | {a_2, a_3}
これを
{a_1, a_2, a_3} | {o_1, o_2, o_3, o_4, o_5}
という形にまとめたいのです。
よろしくお願いいたします。
追記:
重なりがない場合というのは、
a_4 | {o_6,o_7}
a_5 | {o_8,o_9}
というような場合です。
使い方に慣れておらず、要領が悪くてすみません。