PostgreSql. Сложение массивов


Складываем значения двух разных массивов с помощью select запроса в PostgreSql базе данных.

Представим ситуацию, что у вас есть по колонке с типом array из 2х разных таблиц. И вам нужно сложить каждый элемент массива из одной таблицы с каждым противоположным элементом массива из другой таблицы в базе данных Postgres.

Разберем это на примере 2х массивов (для выборки значени из таблиц БД все происходит аналогично, только для этого необходимо указать наименование полей с массивами):
Сложить массивы можно благодаря использованию вложенных запросов.
Внутри вложенного запроса мы берем данные массива и конвертируем в строку при помощь функции unnest. Далее устанавливаем синонимы на конвертированне значения.
В главном select мы выполним сложение значений 2х элементов, на которые мы установили синонимы и выполним преобразование полученных днных в массив с помощью функции array_agg.
Пример:
select array_agg(a+b) from (select unnest('{1,7,5,2}'::int[]) as a, unnest('{2,3,5,7}'::int[]) as b) x

Результат:
{3,10,10,9}
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.