このようなテーブルが1つあります(レポート)
--------------------------------------------------
| user_id | Department | Position | Record_id |
--------------------------------------------------
| 1 | Science | Professor | 1001 |
| 1 | Maths | | 1002 |
| 1 | History | Teacher | 1003 |
| 2 | Science | Professor | 1004 |
| 2 | Chemistry | Assistant | 1005 |
--------------------------------------------------
次のような結果が欲しいのですが
---------------------------------------------------------
| user_id | Department+Position |
---------------------------------------------------------
| 1 | Science,Professor;Maths, ; History,Teacher |
| 2 | Science, Professor; Chemistry, Assistant |
---------------------------------------------------------
つまり、結果テーブルに表示されているように、空のスペースを''として保持する必要があります。これで、LISTAGG関数の使用方法がわかりましたが、1つの列のみです。ただし、2つの列を同時に処理する方法を正確に理解することはできません。これが私の質問です:
SELECT user_id, LISTAGG(department, ';') WITHIN GROUP (ORDER BY record_id)
FROM report
前もって感謝します :-)