如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST
Posted
技术标签:
【中文标题】如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST【英文标题】:How to identify users who install and remove an app - how to use UNNEST in the new schema 【发布时间】:2019-04-11 12:45:33 【问题描述】:我想确定安装和删除应用的用户。之前已在其他地方回答过此问题: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 的用户。我真正想要的是那些同时拥有这两者的用户,并包括这些事件发生的日期。 (编辑以使我的要求更清楚)。
【问题讨论】:
【参考方案1】:您可以使用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;
【讨论】:
太棒了。如何修改它以包含 event_date?即包括 first_open 和 app_remove 日期?例如user_pseudo_id first_openDate app_removeDate 作为列? @user3156990 。 . .我看到你确实在问题中提出了这个要求。我已经添加了逻辑。 我不是很清楚,我的错!感谢您的持续帮助。不幸的是,它抛出了一个错误:'预期关键字 ELSE 或关键字 END,但在 [2:63] 得到“)”'。有什么建议么?谢谢以上是关于如何识别安装和删除应用程序的用户 - 如何在新架构中使用 UNNEST的主要内容,如果未能解决你的问题,请参考以下文章