конвертировать результат подзапроса в массив

Преобразовать результат подзапроса в массив

Я хочу, чтобы результаты моего подзапроса (несколько строк) возвращались в моем запросе как отдельная строка. Например.

select u.url, (select c.categoryid from category c
where c.categoryid = u.categoryid) from url u

Если URL-адрес содержит несколько категорий, подзапрос вернет несколько строк, как показано ниже
P.S. Подзапрос возвращает несколько строк, не поддерживается в большей части базы данных, но PostgreSQL

url | categoryid
---------------------
1   |  1
1   |  2
2   |  1

Результат, который я хотел, следующий

url | categoryid
---------------------
1   |  1,2
2   |  1

Я не уверен, насколько легко этого можно добиться в других базах данных, таких как oracle или mysql, однако PostgreSQL предоставил тип данных Array, используя массив, очень легко получить то, что я хочу. Мне нужно изменить свой запрос на

select u.url, (select array(select c.categoryid from category c
where c.categoryid = u.categoryid))as categoryid from url u

Результат ~

url | categoryid
---------------------
1   |  {1,2}
2   |  1

Готово ~ PostgreSQL Array Rock ~