- 締切済み
Oracle グルーピング
あるデータをグルーピングして取得したと考えています。 ・データ |ユーザーCD|ユーザー名|担当部署| |0000000001|ユーザーA |部署A | |0000000002|ユーザーB |部署B | |0000000002|ユーザーB |部署C | |0000000003|ユーザーC |部署D | |0000000003|ユーザーC |部署E | |0000000003|ユーザーC |部署F | 上記のデータをユーザー単位でグルーピングしたいです。 可能でしょうか? 下記のように取得したいです。 |ユーザーCD|ユーザー名|担当部署 | |0000000001|ユーザーA |部署A | |0000000002|ユーザーB |部署B、部署C | |0000000003|ユーザーC |部署D、部署E、部署F | すみません、知恵をお借りしたいです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- o123459876
- ベストアンサー率59% (19/32)
oracleのバージョンがわからないですが with a as( select 01 as id,'ユーザーA' as username,'部署A' as busyo from dual union all select 02,'ユーザーB','部署B' from dual union all select 02,'ユーザーB','部署C' from dual union all select 03,'ユーザーC','部署D' from dual union all select 03,'ユーザーC','部署E' from dual union all select 03,'ユーザーC','部署F' from dual ) select id,username as ユーザー名, substr( replace(replace(XMLAgg(XMLElement("busyo",busyo) order by id),'</busyo>'),'<busyo>',','),2) as 部署 from a group by id,username ----結果---- ID |ユーザー名 |部署 1 |ユーザーA |部署A 2 |ユーザーB |部署B,部署C 3 |ユーザーC |部署D,部署E,部署F