我想确定安装和删除应用程序的用户。先前已在其他地方回答过此问题:SQL Query to find users that install and uninstall an App on the same day
但是,这使用的是旧架构,我不确定如何使用新架构对其进行重做。带有event_dim的UNNEST函数是最大的问题,因为在新模式中似乎没有明显的替代方法。
#standardSQL
SELECT event_date,user_pseudo_id,event_name
FROM
`appDataFromFirebase.events_*`
WHERE event_name = "app_remove" OR event_name = "first_open"
这给了我所有具有app_remove或first_open的用户。我真正想要的是同时拥有这两个用户并包括这些事件发生日期的那些用户。 (已编辑,以使我的要求更清楚)。
答案 0 :(得分:0)
您可以使用group by
来吸引用户:
SELECT user_pseudo_id,
MIN(CASE WHEN event_name = 'first_open' THEN event_date END) as app_remove_date,
MAX(CASE WHEN event_name = 'app_remove' THEN event_date END) as app_remove_date
FROM `appDataFromFirebase.events_*`
WHERE event_name IN ('app_remove', 'first_open')
GROUP BY user_pseudo_id
HAVING COUNT(DISTINCT event_name) = 2;