以前にMySQLのGROUP_CONCAT関数についてのエントリーを書いていたのですが、あれから5年。 1対多の関係を持つ親子テーブルがあった場合、1つの主キーに対して結合結果が複数行になることはよくあると思いますが、 MySQLでは上記の関数を使うことで複数行内の列をひとつの文字列としてまとめることができます。 ・ ・ ・Oracleでも出来なくはないんですが、かなり面倒なんですよねぇ。 Oracleでも11g R2から同様の集計関数 LISTAGGが追加されており、容易に対応が実施できるようになりました。 まず私の目を惹いたのは、LISTAGG(LIST AGGREGATE)です。簡単にいうと、グループ化された行に存在する値を集約し、1つのリストを生成します。 従業員のリストを例にとってみましょう。LISTAGGはCOUNTの機能のように、この表を集約し、すべての文字列を1つの大きな文