Я думаю, вам нужно unnest
:
SELECT *
FROM analytics_152426080.events_20190626 e CROSS JOIN
UNNEST(event_params) ep
WHERE e.event_name = 'details_viewtime' AND
ep.key = 'time_ms';
Я не уверен, где находится фактическое значение, но что-то вроде этого:
SELECT SUM(ep.value.int_value)
FROM analytics_152426080.events_20190626 e CROSS JOIN
UNNEST(event_params) ep
WHERE ep.event_name = 'details_viewtime' AND
ep.key = 'time_ms';
Предполагая, что выхочу, чтобы сумма была целым числом.
Это предполагает, что столбец значения является числом некоторого рода.В противном случае вам нужно преобразовать его в единицу.
Или, если вы хотите суммировать значение в строке:
SELECT e.*,
(SELECT SUM(ep.value.int_value)
FROM UNNEST(event_params) ep
WHERE ep.key = 'time_ms'
) as sum_ms
FROM analytics_152426080.events_20190626 e
WHERE e.event_name = 'details_viewtime'