SELECT
DISTINCT user_pseudo_id,
--- Объединяем названия страниц в одно поле по каждому уникальному пользователю
FORMAT('%T', ARRAY_AGG(page_title_n) OVER (PARTITION BY user_pseudo_id)) AS array_agg
FROM (
SELECT *,
--- Соединяем название каждой страницы, присваиваем ей порядковый номер отсортированный по таймштампу и объединенный по пользователю
CONCAT( ROW_NUMBER() OVER(PARTITION BY t.user_pseudo_id ORDER BY t.event_timestamp ASC),' - ', t.page_title) AS page_title_n
FROM (
SELECT
DISTINCT user_pseudo_id,event_timestamp,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title
FROM
`bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE event_name = 'page_view' AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
ORDER BY
user_pseudo_id,
event_timestamp ASC) t )
ORDER BY
user_pseudo_id