У меня есть таблица со столбцами, которые содержат массивы, которые я хочу преобразовать в строки, чтобы я мог разделить их с помощью разделителя на несколько столбцов.
У меня проблемы с массивами дат с часовыми поясами.
create materialized view matview1 as select
(location) as location,
(nullif(split_part(string_agg(distinct name,'; '),'; ',1),'')) as name1,
(nullif(split_part(string_agg(distinct name,'; '),'; ',2),'')) as name2,
(nullif(split_part(string_agg(distinct name,'; '),'; ',3),'')) as name3,
(array_agg(distinct(event_date_with_timestamp))) as event_dates
from table2 b
group by location;
В приведенном выше коде я создаю материализованное представление таблицы, чтобы объединить все записи таблицы, связанные с определенными местоположениями, в одну строку.
Как создать дополнительные столбцы для каждой даты событиязапись, как я сделал с именами (например, Name1, Name2 и Name3 из массива 'name')?
Я попытался изменить массив в строковый формат с помощью:
(nullif(split_part(array_to_string(array_agg(distinct(event_date_with_timestamp))),'; ',1),'')) as event_date1
Но этовыдает ошибку:
"функция array_to_string (отметка времени с часовым поясом []) не существует"
А приведение к разным типам данных всегда приводит к ошибкам, говорящим, что я не могу привести из типа timestampz во что-либоостальное.