with q as (
select h.id, string_agg(distinct nums.from_number, '|') filter ( where nums.from_number != '' and nums.from_number notnull ) numbers
from call_center.cc_calls_history h
left join call_center.cc_calls_history h2 on h2.parent_id = h.id
left join lateral (
select h.from_number
union distinct
select h.to_number
union distinct
select h.destination
union distinct
select h2.from_number
union distinct
select h2.to_number
union distinct
select h2.destination
) nums on true
where h.created_at between now()::date - interval '30d' and now()
group by 1
)
update call_center.cc_calls_history h
set search_number = q.numbers
from q
where q.id = h.id; |