У меня есть одна таблица, подобная этой (отчет)
--------------------------------------------------
| 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, но только для одного столбца. Тем не менее, я не могу точно понять, как я могу сделать для двух столбцов в одно время. Вот мой запрос:
SELECT user_id, LISTAGG(department, ';') WITHIN GROUP (ORDER BY record_id)
FROM report
Заранее спасибо: -)