http://www.shift-the-oracle.com/sql/aggregate-functions/listagg-10g.html
Oracle11gR2以降で利用できる、ちょっと変わった集計関数。
グループの内訳データを任意の区切り文字で区切って、文字列として取得することができる。
例えば、
GRP VAL --------------------- グループA 10 グループA 20 グループA 30 グループB 40 グループB 50
というテーブルがあるときに、
select GRP, sum(VAL), ListAgg(VAL, ',') within group (order by VAL desc) from TABLE;
とやると以下の結果が戻る。
GRP sum(VAL) ListAgg ------------------------------------- グループA 60 30,20,10 グループB 90 50,40