My table looks like this:
There’s one more column named “user_pseudo_id” which is unique id for users. I want to take sum of event_params.key = ‘engagement_time_msec’ for user_pseudo_id who have done event_name = ‘yt_event’.
Also, event_params.key = ‘engagement_time_msec’ is only present in two events only, i.e. event_name = ‘user_engagement’ and ‘screen_view’.
I have tried subqueries like this:
x
SELECT
user_pseudo_id,
(
select
sum(value.int_value/60000)
from unnest(event_params)
where
key = 'engagement_time_msec'
and
user_pseudo_id = 'yt_users') as eng_time_min
FROM
`Xyz.events_20201030`
where
event_name = 'yt_event'
But I am not able to get it.
Please help me. I will be highly obliged.
Thanks.
Advertisement
Answer
Below is for BigQuery Standard SQL
#standardSQL
select user_pseudo_id,
sum(( select value.int_value/60000
from t.event_params
where key = 'engagement_time_msec'
)) as eng_time_min
from `Xyz.events_20201030` t
where user_pseudo_id in (
select distinct user_pseudo_id
from `Xyz.events_20201030`
where event_name = 'yt_event'
)
group by user_pseudo_id